import { CommonService } from 'src/common/common.service';
import { DbService } from 'src/db/db.service';
import { AddItemDto, EditItemDto, GetItemListDto, GroupedByCategoryDto, ItemCsvDto, simillarDto } from './dto/item.dto';
import { ItemAggregation } from './item.aggregation';
import mongoose from 'mongoose';
import { AppService } from 'src/app.service';
export declare class ItemService {
    private readonly model;
    private readonly commonService;
    private readonly itemAggregation;
    private readonly appservice;
    constructor(model: DbService, commonService: CommonService, itemAggregation: ItemAggregation, appservice: AppService);
    uploadItemsCsv(req: any, dto: ItemCsvDto): Promise<{
        data: string;
    }>;
    getListOfItems(req: any, query: GetItemListDto): Promise<{
        success: boolean;
        message: string;
        data: any;
        pagination: {
            total: any;
            page: number;
            limit: number;
            totalPages: number;
        };
    }>;
    editItem(req: any, itemId: string, dto: EditItemDto): Promise<{
        success: boolean;
        message: string;
        data: mongoose.FlattenMaps<{
            type?: string;
            store_id: string;
            category_id: string;
            name: string;
            description: string;
            size: string;
            quantity: string;
            unit: string;
            price: number;
            discounted_price: number;
            discount_type: string;
            discount_value: any;
            discount_start_date: string;
            discount_end_date: string;
            is_discount_active: boolean;
            imageUrl: string;
            is_deleted: boolean;
            stock: number;
            barcode_id: string;
            barcode_url: string;
            admin_commission: number;
            is_available: boolean;
            availability_status: string;
            is_hidden: boolean;
        }> & {
            _id: mongoose.Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    addItem(req: any, dto: AddItemDto): Promise<{
        success: boolean;
        message: string;
        data: mongoose.Document<unknown, {}, import("./schema/item.schema").ItemItems, {}, {}> & import("./schema/item.schema").ItemItems & {
            _id: mongoose.Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    getItemDetails(req: any, itemId: string): Promise<{
        success: boolean;
        message: string;
        data: any;
    }>;
    deleteItem(req: any, itemId: string): Promise<{
        success: boolean;
        message: string;
    }>;
    getGroceryWithStockByCategory(dto: simillarDto, req: any): Promise<any[]>;
    findByCategoryName(query: any, page: number, limit: number, req: any): Promise<{
        total: any;
        page: number;
        limit: number;
        data: mongoose.mongo.BSON.Document[];
    }>;
    getGroceryItemsGroupedByCategory(query: GroupedByCategoryDto, req: any): Promise<{
        success: boolean;
        message: string;
        data: any[];
        pagination: {
            total: any;
            page: number;
            limit: number;
            totalPages: number;
        };
    }>;
    UpdateIsAvailable(item_id: any, body: any): Promise<{
        message: string;
    }>;
}
