import { ServicePaymentCollectionService } from './service-payment-collection.service';
import { CreateServicePaymentCollectionDto } from './dto/create-service-payment-collection.dto';
import { UpdateServicePaymentCollectionDto } from './dto/update-service-payment-collection.dto';
import { ConfirmCollectionDto } from './dto/confirm-collection.dto';
import { VoidConfirmationDto } from './dto/void-confirmation.dto';
import { ListCollectionsQueryDto } from './dto/list-collections-query.dto';
import { SupplierCollectionDriversQueryDto, SupplierCollectionQueryDto } from './dto/collection-analytics-query.dto';
export declare class ServicePaymentCollectionController {
    private readonly service;
    constructor(service: ServicePaymentCollectionService);
    list(query: ListCollectionsQueryDto): Promise<import("../../common/responses/api-response").ApiResponse<(import("../../entities/service-payment-collection.entity").ServicePaymentCollectionEntity & {
        latest_confirmation: import("../../entities/service-payment-collection-confirmation.entity").ServicePaymentCollectionConfirmationEntity | null;
    })[]>>;
    aggregateBySupplier(query: SupplierCollectionQueryDto): Promise<import("../../common/responses/api-response").ApiResponse<{
        collection_kind: "CASH" | "EXPENSE";
        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;
    }[]>>;
    aggregateSupplierCollectionDrivers(query: SupplierCollectionDriversQueryDto): Promise<import("../../common/responses/api-response").ApiResponse<{
        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;
    }[]>>;
    findOne(id: string): Promise<import("../../common/responses/api-response").ApiResponse<{
        history: import("../../entities/service-payment-collection-confirmation.entity").ServicePaymentCollectionConfirmationEntity[];
        booking: import("../../entities").BookingEntity;
        booking_id: string;
        service_type: "TRANSPORT" | "ACTIVITY" | "SPECIAL";
        transport_item: import("../../entities").BookingTransportItemEntity | null;
        transport_item_id: string | null;
        activity_item: import("../../entities").BookingActivityItemEntity | null;
        activity_item_id: string | null;
        special_item: import("../../entities").BookingSpecialItemEntity | null;
        special_item_id: string | null;
        transport_item_supplier: import("../../entities/booking-transport-item-supplier.entity").BookingTransportItemSupplierEntity | null;
        transport_item_supplier_id: string | null;
        activity_item_supplier: import("../../entities/booking-activity-item-supplier.entity").BookingActivityItemSupplierEntity | null;
        activity_item_supplier_id: string | null;
        special_item_supplier: import("../../entities/booking-special-item-supplier.entity").BookingSpecialItemSupplierEntity | null;
        special_item_supplier_id: string | null;
        expected_amount: number;
        currency: import("../../entities").CurrencyEntity;
        currency_id: string;
        status: "PENDING" | "COLLECTED" | "CANCELLED";
        notes: string | null;
        confirmations: import("../../entities/service-payment-collection-confirmation.entity").ServicePaymentCollectionConfirmationEntity[];
        id: string;
        tenant_id: string;
        created_by: string | null;
        updated_by: string | null;
        created_at: Date;
        updated_at: Date;
        is_deleted: boolean;
    }>>;
    setRequired(dto: CreateServicePaymentCollectionDto): Promise<import("../../common/responses/api-response").ApiResponse<import("../../entities/service-payment-collection.entity").ServicePaymentCollectionEntity>>;
    update(id: string, dto: UpdateServicePaymentCollectionDto): Promise<import("../../common/responses/api-response").ApiResponse<import("../../entities/service-payment-collection.entity").ServicePaymentCollectionEntity>>;
    cancel(id: string): Promise<import("../../common/responses/api-response").ApiResponse<import("../../entities/service-payment-collection.entity").ServicePaymentCollectionEntity>>;
    confirm(id: string, dto: ConfirmCollectionDto): Promise<import("../../common/responses/api-response").ApiResponse<import("../../entities/service-payment-collection.entity").ServicePaymentCollectionEntity>>;
    voidConfirmation(id: string, dto: VoidConfirmationDto): Promise<import("../../common/responses/api-response").ApiResponse<import("../../entities/service-payment-collection.entity").ServicePaymentCollectionEntity>>;
}
