import { Repository } from 'typeorm';
import { ClsService } from 'nestjs-cls';
import { TenantAwareRepository } from '../../../common/repositories/tenant-aware.repository';
import { BookingCashCollectionEntity } from '../../../entities/booking-cash-collection.entity';
type CollectionKind = 'CASH' | 'EXPENSE';
type SupplierRow = {
    collection_kind: CollectionKind;
    collected_by_type: 'OWN' | 'SUPPLIER';
    collector_name: string | null;
    supplier_id: string | null;
    supplier_name: string;
    currency_code: string;
    collections_count: number;
    pending_count: number;
    collected_count: number;
    total_collection: number;
    total_collected: number;
    total_pending: number;
};
type DriverRow = {
    driver_id: string | null;
    driver_name: string;
    driver_phone: string | null;
    service_type: string | null;
    currency_code: string;
    collections_count: number;
    pending_count: number;
    collected_count: number;
    total_collection: number;
    total_collected: number;
    total_pending: number;
    notes: string | null;
    routes: string | null;
};
export declare class CollectionAnalyticsRepository extends TenantAwareRepository<BookingCashCollectionEntity> {
    constructor(repo: Repository<BookingCashCollectionEntity>, cls: ClsService);
    private readonly collectionLinesCte;
    bySupplier(opts: {
        collection_kind?: CollectionKind;
        search?: string;
        date_from?: string;
        date_to?: string;
        page?: number;
        limit?: number;
    }): Promise<{
        items: SupplierRow[];
        meta: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
        };
    }>;
    supplierCollectionDrivers(opts: {
        collection_kind?: CollectionKind;
        collected_by_type?: 'OWN' | 'SUPPLIER';
        collector_name?: string;
        supplier_id?: string;
        supplier_name?: string;
        search?: string;
        date_from?: string;
        date_to?: string;
        page?: number;
        limit?: number;
    }): Promise<{
        items: DriverRow[];
        meta: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
        };
    }>;
}
export {};
