import { PrismaService } from '../../prisma/prisma.service';
import { ConfigService } from '@nestjs/config';
export declare class CreateDelegueDto {
    name: string;
    email?: string;
    phone?: string;
    region?: string[];
    sector?: string;
}
export declare class UpdateDelegueDto {
    name?: string;
    email?: string;
    phone?: string;
    region?: string[];
    sector?: string;
    status?: string;
}
export declare class DeleguesService {
    private prisma;
    private config;
    constructor(prisma: PrismaService, config: ConfigService);
    findAll(region?: string): Promise<({
        qrCodes: {
            id: string;
            uniqueKey: string;
            qrUrl: string;
            qrImageData: string | null;
            generatedAt: Date;
            isActive: boolean;
            delegueId: string;
        }[];
        _count: {
            notifications: number;
        };
    } & {
        name: string;
        phone: string | null;
        id: string;
        createdAt: Date;
        updatedAt: Date;
        uniqueCardNumber: string;
        email: string | null;
        status: string;
        region: import("@prisma/client/runtime/client").JsonValue;
        sector: string | null;
    })[]>;
    findOne(id: string): Promise<{
        qrCodes: {
            id: string;
            uniqueKey: string;
            qrUrl: string;
            qrImageData: string | null;
            generatedAt: Date;
            isActive: boolean;
            delegueId: string;
        }[];
    } & {
        name: string;
        phone: string | null;
        id: string;
        createdAt: Date;
        updatedAt: Date;
        uniqueCardNumber: string;
        email: string | null;
        status: string;
        region: import("@prisma/client/runtime/client").JsonValue;
        sector: string | null;
    }>;
    create(dto: CreateDelegueDto): Promise<{
        qrCodes: {
            id: string;
            uniqueKey: string;
            qrUrl: string;
            qrImageData: string | null;
            generatedAt: Date;
            isActive: boolean;
            delegueId: string;
        }[];
    } & {
        name: string;
        phone: string | null;
        id: string;
        createdAt: Date;
        updatedAt: Date;
        uniqueCardNumber: string;
        email: string | null;
        status: string;
        region: import("@prisma/client/runtime/client").JsonValue;
        sector: string | null;
    }>;
    update(id: string, dto: UpdateDelegueDto): Promise<{
        name: string;
        phone: string | null;
        id: string;
        createdAt: Date;
        updatedAt: Date;
        uniqueCardNumber: string;
        email: string | null;
        status: string;
        region: import("@prisma/client/runtime/client").JsonValue;
        sector: string | null;
    }>;
    remove(id: string): Promise<{
        name: string;
        phone: string | null;
        id: string;
        createdAt: Date;
        updatedAt: Date;
        uniqueCardNumber: string;
        email: string | null;
        status: string;
        region: import("@prisma/client/runtime/client").JsonValue;
        sector: string | null;
    }>;
    regenerateQr(id: string): Promise<{
        id: string;
        uniqueKey: string;
        qrUrl: string;
        qrImageData: string | null;
        generatedAt: Date;
        isActive: boolean;
        delegueId: string;
    }>;
    getRegionStats(regions: string[]): Promise<{
        regions: string[];
        totalVendors: number;
        totalPharmacies: number;
        totalSalesQuantity: number;
        vendors: {
            id: string;
            name: string;
            phone: string;
            pharmacyName: string;
            pendingCommission: number;
            periodSales: number;
        }[];
        pharmacies: ({
            _count: {
                vendors: number;
            };
        } & {
            name: string;
            phone: string | null;
            id: string;
            createdAt: Date;
            updatedAt: Date;
            status: string;
            region: string | null;
            address: string | null;
        })[];
    }>;
}
