import { VendorsService } from './vendors.service';
import { CreateVendorDto } from './dto/create-vendor.dto';
import { UpdateVendorDto } from './dto/update-vendor.dto';
export declare class VendorsController {
    private readonly vendorsService;
    constructor(vendorsService: VendorsService);
    findAll(pharmacyId?: string, status?: string, search?: string, wilaya?: string, page?: string, limit?: string): Promise<{
        data: any[];
        meta: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
        };
    }>;
    findOne(id: string): Promise<{
        pharmacy: {
            name: string;
            phone: string | null;
            id: string;
            createdAt: Date;
            updatedAt: Date;
            status: string;
            region: string | null;
            address: string | null;
        };
        paymentPeriods: {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            status: string;
            vendorId: string;
            periodType: string;
            startDate: Date;
            endDate: Date;
            totalSales: number;
            totalCommission: number;
            paidAmount: number;
            paidAt: Date | null;
        }[];
        qrCodes: {
            id: string;
            uniqueKey: string;
            qrUrl: string;
            qrImageData: string | null;
            generatedAt: Date;
            isActive: boolean;
            vendorId: string;
        }[];
    } & {
        name: string | null;
        phone: string | null;
        id: string;
        createdAt: Date;
        updatedAt: Date;
        uniqueCardNumber: string;
        email: string | null;
        ccp: string | null;
        ccpKey: string | null;
        rip: string | null;
        pharmacyId: string | null;
        status: string;
        actionDate: Date;
        registrationBonus: boolean;
    }>;
    getStats(id: string): Promise<{
        vendor: {
            pharmacy: {
                name: string;
                phone: string | null;
                id: string;
                createdAt: Date;
                updatedAt: Date;
                status: string;
                region: string | null;
                address: string | null;
            };
            paymentPeriods: {
                id: string;
                createdAt: Date;
                updatedAt: Date;
                status: string;
                vendorId: string;
                periodType: string;
                startDate: Date;
                endDate: Date;
                totalSales: number;
                totalCommission: number;
                paidAmount: number;
                paidAt: Date | null;
            }[];
            qrCodes: {
                id: string;
                uniqueKey: string;
                qrUrl: string;
                qrImageData: string | null;
                generatedAt: Date;
                isActive: boolean;
                vendorId: string;
            }[];
        } & {
            name: string | null;
            phone: string | null;
            id: string;
            createdAt: Date;
            updatedAt: Date;
            uniqueCardNumber: string;
            email: string | null;
            ccp: string | null;
            ccpKey: string | null;
            rip: string | null;
            pharmacyId: string | null;
            status: string;
            actionDate: Date;
            registrationBonus: boolean;
        };
        stats: {
            totalQuantitySold: number;
            totalSaleCount: number;
            totalCommissionEarned: number;
            paidCommission: number;
            pendingCommission: number;
            registrationBonus: number;
        };
    }>;
    getSales(id: string, page?: string, limit?: string): Promise<{
        data: any[];
        meta: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
        };
    }>;
    getCommissions(id: string): Promise<{
        id: string;
        createdAt: Date;
        updatedAt: Date;
        status: string;
        vendorId: string;
        periodType: string;
        startDate: Date;
        endDate: Date;
        totalSales: number;
        totalCommission: number;
        paidAmount: number;
        paidAt: Date | null;
    }[]>;
    create(dto: CreateVendorDto): Promise<{
        pharmacy: {
            name: string;
            phone: string | null;
            id: string;
            createdAt: Date;
            updatedAt: Date;
            status: string;
            region: string | null;
            address: string | null;
        };
        paymentPeriods: {
            id: string;
            createdAt: Date;
            updatedAt: Date;
            status: string;
            vendorId: string;
            periodType: string;
            startDate: Date;
            endDate: Date;
            totalSales: number;
            totalCommission: number;
            paidAmount: number;
            paidAt: Date | null;
        }[];
        qrCodes: {
            id: string;
            uniqueKey: string;
            qrUrl: string;
            qrImageData: string | null;
            generatedAt: Date;
            isActive: boolean;
            vendorId: string;
        }[];
    } & {
        name: string | null;
        phone: string | null;
        id: string;
        createdAt: Date;
        updatedAt: Date;
        uniqueCardNumber: string;
        email: string | null;
        ccp: string | null;
        ccpKey: string | null;
        rip: string | null;
        pharmacyId: string | null;
        status: string;
        actionDate: Date;
        registrationBonus: boolean;
    }>;
    update(id: string, dto: UpdateVendorDto): Promise<{
        pharmacy: {
            name: string;
            phone: string | null;
            id: string;
            createdAt: Date;
            updatedAt: Date;
            status: string;
            region: string | null;
            address: string | null;
        };
    } & {
        name: string | null;
        phone: string | null;
        id: string;
        createdAt: Date;
        updatedAt: Date;
        uniqueCardNumber: string;
        email: string | null;
        ccp: string | null;
        ccpKey: string | null;
        rip: string | null;
        pharmacyId: string | null;
        status: string;
        actionDate: Date;
        registrationBonus: boolean;
    }>;
    remove(id: string): Promise<{
        name: string | null;
        phone: string | null;
        id: string;
        createdAt: Date;
        updatedAt: Date;
        uniqueCardNumber: string;
        email: string | null;
        ccp: string | null;
        ccpKey: string | null;
        rip: string | null;
        pharmacyId: string | null;
        status: string;
        actionDate: Date;
        registrationBonus: boolean;
    }>;
}
