import { SalesService } from './sales.service';
import { UpsertSalesTargetDto } from './dto/sales-target.dto';
import { SalesTargetType } from './schema/sales-target-schema';
import { AdminRewardWalletListDto } from './dto/admin-reward-wallet.dto';
import { SalesCommissionDistributionListDto } from './dto/sales-commission-distribution-list.dto';
import { DbService } from 'src/db/db.service';
export declare class SalesController {
    private readonly SalesService;
    private readonly model;
    constructor(SalesService: SalesService, model: DbService);
    distributionDetails(id: string): Promise<{
        distributionDetails: import("mongoose").Document<unknown, {}, import("./schema/sales-commission-distribution-schema").SalesCommissionDistribution, {}, {}> & import("./schema/sales-commission-distribution-schema").SalesCommissionDistribution & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        };
        referralCustomers: (import("mongoose").Document<unknown, {}, import("../customer/schema/customer.schema").Customers, {}, {}> & import("../customer/schema/customer.schema").Customers & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        })[];
        referralVendors: (import("mongoose").Document<unknown, {}, import("../customer/schema/customer.schema").Customers, {}, {}> & import("../customer/schema/customer.schema").Customers & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        })[];
    }>;
    getSalesTargets(target_type?: SalesTargetType): Promise<{
        data: (import("mongoose").FlattenMaps<{
            target_type: SalesTargetType;
            targets: {
                target: number;
                team_target: number;
                reward: number;
            }[];
        }> & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        })[];
        certificates: (import("mongoose").FlattenMaps<{
            type: import("./schema/sales-certificate-schema").SalesCertificateType;
            level: {
                toString: (radix?: number) => string;
                toFixed: (fractionDigits?: number) => string;
                toExponential: (fractionDigits?: number) => string;
                toPrecision: (precision?: number) => string;
                valueOf: () => number;
                toLocaleString: {
                    (locales?: string | string[], options?: Intl.NumberFormatOptions): string;
                    (locales?: Intl.LocalesArgument, options?: Intl.NumberFormatOptions): string;
                };
            };
            driver_count: {
                toString: (radix?: number) => string;
                toFixed: (fractionDigits?: number) => string;
                toExponential: (fractionDigits?: number) => string;
                toPrecision: (precision?: number) => string;
                valueOf: () => number;
                toLocaleString: {
                    (locales?: string | string[], options?: Intl.NumberFormatOptions): string;
                    (locales?: Intl.LocalesArgument, options?: Intl.NumberFormatOptions): string;
                };
            };
            vendor_count: {
                toString: (radix?: number) => string;
                toFixed: (fractionDigits?: number) => string;
                toExponential: (fractionDigits?: number) => string;
                toPrecision: (precision?: number) => string;
                valueOf: () => number;
                toLocaleString: {
                    (locales?: string | string[], options?: Intl.NumberFormatOptions): string;
                    (locales?: Intl.LocalesArgument, options?: Intl.NumberFormatOptions): string;
                };
            };
            customer_count: {
                toString: (radix?: number) => string;
                toFixed: (fractionDigits?: number) => string;
                toExponential: (fractionDigits?: number) => string;
                toPrecision: (precision?: number) => string;
                valueOf: () => number;
                toLocaleString: {
                    (locales?: string | string[], options?: Intl.NumberFormatOptions): string;
                    (locales?: Intl.LocalesArgument, options?: Intl.NumberFormatOptions): string;
                };
            };
        }> & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        })[];
    }>;
    upsertSalesTarget(dto: UpsertSalesTargetDto): Promise<{
        message: string;
    }>;
    createSalesCertificateRewardsCronTest(): Promise<void>;
    getAdminRewardWalletList(dto: AdminRewardWalletListDto): Promise<{
        data: any;
        total: any;
        total_credit: any;
        total_debit: any;
        remaining_amount: number;
        currentPage: number;
        totalPages: number;
    }>;
    certificationListing(req: any): Promise<{
        current_level: number;
        current_certificate: import("mongoose").Document<unknown, {}, import("./schema/sales-certificate-schema").SalesCertificate, {}, {}> & import("./schema/sales-certificate-schema").SalesCertificate & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        };
        current_progress: {
            referred_customers: number;
            referred_vendors: number;
            referred_drivers: number;
            personal_sales_amount: any;
            team_sales_amount: any;
            achieved_target_level: any;
            combined_reward_level: number;
            reward_earned: number;
        };
        next_level: {
            level: Number;
            customer_required: Number;
            vendor_required: Number;
            driver_required: Number;
            remaining_customers: number;
            remaining_vendors: number;
            remaining_drivers: number;
        };
        sales_target: {
            current_target: import("./schema/sales-target-schema").SalesTargetItem;
            next_target: import("./schema/sales-target-schema").SalesTargetItem;
            personal_amount: any;
            team_amount: any;
            remaining_personal_amount: number;
            remaining_team_amount: number;
        };
    }>;
    getCommissionDistributionList(dto: SalesCommissionDistributionListDto): Promise<{
        data: any;
        total: any;
        total_sale_commission: any;
        total_company_wallet: any;
        total_customer_commission_wallet: any;
        currentPage: number;
        totalPages: number;
    }>;
}
