import { Repository } from 'typeorm';
import { ClsService } from 'nestjs-cls';
import { TenantAwareRepository } from '../../../common/repositories/tenant-aware.repository';
import { PaymentSettlementEntity } from '../../../entities/payment-settlement.entity';
export declare class SettlementAnalyticsRepository extends TenantAwareRepository<PaymentSettlementEntity> {
    constructor(repo: Repository<PaymentSettlementEntity>, cls: ClsService);
    bySupplier(opts: {
        search?: string;
        date_from?: string;
        date_to?: string;
        page?: number;
        limit?: number;
    }): Promise<{
        items: Array<{
            supplier_id: string;
            supplier_name: string;
            bookings_count: number;
            total_owed: number;
            total_paid: number;
            outstanding: number;
            oldest_unsettled_booking: {
                booking_number: string;
                created_at: string;
            } | null;
        }>;
        meta: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
        };
    }>;
    byAgent(opts: {
        search?: string;
        date_from?: string;
        date_to?: string;
        page?: number;
        limit?: number;
    }): Promise<{
        items: Array<{
            sales_agent_id: string;
            agent_name: string;
            bookings_count: number;
            total_billed: number;
            total_collected: number;
            total_supplier_owed: number;
            total_supplier_paid: number;
            realised_margin: number;
        }>;
        meta: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
        };
    }>;
    bySource(opts: {
        search?: string;
        date_from?: string;
        date_to?: string;
        page?: number;
        limit?: number;
    }): Promise<{
        items: Array<{
            source_id: string;
            source_name: string;
            bookings_count: number;
            total_billed: number;
            total_collected: number;
            total_supplier_owed: number;
            total_supplier_paid: number;
            realised_margin: number;
        }>;
        meta: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
        };
    }>;
    byService(opts: {
        destination_id?: string;
        date_from?: string;
        date_to?: string;
        page?: number;
        limit?: number;
    }): Promise<{
        items: Array<{
            source_item_type: string;
            service_id: string;
            service_name: string;
            bookings_sold: number;
            total_selling: number;
            total_cost: number;
            outstanding: number;
            margin: number;
            margin_pct: number | null;
        }>;
        meta: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
        };
    }>;
}
