import { AgentService } from './agent.service';
import { UsersType } from 'src/auth/role/user.role';
import { CancelBookingDto } from 'src/booking/dto/booking.dto';
import { editProfileDto, GetAgentListDto } from './dto/update-agent.dto';
import { BookingDto, ListAgentBookingDto, ScheduleBookingDto, SendOtpDto, VerifyOtpDto } from './dto/booking.dto';
import { CreateCustomerDto, GetCustomerQueryDto } from './dto/customer.dto';
import { MakePaymentDto } from 'src/payment/dto/payment.dto';
import { GetPaginationDto } from 'src/documents-type/dto/document.dto';
import { SetDocExpiryDateDto, UpdateLicenceDto } from 'src/driver/dto/driver.dto';
export declare class AgentController {
    private readonly agentService;
    constructor(agentService: AgentService);
    findAll(query: GetAgentListDto): Promise<{
        message: import("../common/helpers/message-keys.enum").MessageKey;
        data: (import("mongoose").FlattenMaps<{
            type: string;
            name: string;
            email: string;
            image: string;
            commission_percentage: string;
            current_booking: string;
            country_code: string;
            block_reason: string;
            rejection_reason: string;
            phone: string;
            timezone: string;
            customer_id: string;
            rzr_contact_id: string;
            beneId: string;
            temp_email: string;
            temp_phone: string;
            temp_country_code: string;
            temp_email_otp: number;
            temp_phone_otp: number;
            wallet_balance: number;
            temp_email_otp_at: number;
            temp_phone_otp_at: number;
            is_email_verify: boolean;
            is_phone_verify: boolean;
            is_bank_added: boolean;
            preferred_currency: string;
            preferred_language: string;
            currency_symbol: string;
            socket_id: string;
            created_at: number;
            updated_at: number;
            gender: import("./schema/agent.schema").Gender;
            is_deleted: boolean;
            is_block: boolean;
            is_requested: boolean;
            is_active: boolean;
            is_rejected: boolean;
            documents: {
                type_id: string;
                front_image_id: string;
                back_image_id: string;
                expire_date: number;
                is_expired: boolean;
            }[];
        }> & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        })[];
        pagination: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
            activeCount: number;
            blockedCount: number;
            requestedCount: number;
            deletedCount: number;
            rejectedCount: number;
        };
    }>;
    prcings(body: any): Promise<any>;
    cards(req: any, start_date?: string, end_date?: string): Promise<{
        data: any;
    }>;
    setDocumentExpiry(agentId: string, body: SetDocExpiryDateDto): Promise<{
        message: import("../common/helpers/message-keys.enum").MessageKey;
        data: import("mongoose").Document<unknown, {}, import("./schema/agent.schema").Agent, {}, {}> & import("./schema/agent.schema").Agent & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    getAgentBookings(req: any, query: ListAgentBookingDto): Promise<{
        message: import("../common/helpers/message-keys.enum").MessageKey;
        data: any;
        pagination: {
            total: any;
            page: number;
            limit: number;
            totalPages: number;
        };
    }>;
    getAgentEarnings(req: any, query: ListAgentBookingDto): Promise<{
        message: string;
        data: any;
        pagination: {
            total: any;
            page: number;
            limit: number;
            totalPages: number;
        };
    }>;
    getActiveDocuments(body: GetPaginationDto): Promise<{
        message: import("../common/helpers/message-keys.enum").MessageKey;
        data: {
            data: (import("mongoose").FlattenMaps<{
                resource: import("../documents-type/schema/document-type.schema").DocumentResource;
                name: string;
                description: string;
                added_by: UsersType;
                status: import("../documents-type/schema/document-type.schema").DocumentStatus;
                sides_required: import("../documents-type/schema/document-type.schema").DocumentSidesRequired;
                expiry_required: boolean;
                created_by?: import("mongoose").Types.ObjectId;
                is_deleted: boolean;
            }> & {
                _id: import("mongoose").Types.ObjectId;
            } & {
                __v: number;
            })[];
            count: number;
        };
    }>;
    edit_docs(body: UpdateLicenceDto, req: any): Promise<{
        message: import("../common/helpers/message-keys.enum").MessageKey;
    }>;
    getAgentBookingDetails(req: any, id: string): Promise<{
        message: import("../common/helpers/message-keys.enum").MessageKey;
        data: any;
    }>;
    customers(req: any, query: GetCustomerQueryDto): Promise<{
        message: import("../common/helpers/message-keys.enum").MessageKey;
        data: (import("mongoose").FlattenMaps<{
            name: string;
            agent: import("mongoose").Types.ObjectId;
            phone_number: {
                readonly [x: number]: string;
                toString: () => string;
                charAt: (pos: number) => string;
                charCodeAt: (index: number) => number;
                concat: (...strings: string[]) => string;
                indexOf: (searchString: string, position?: number) => number;
                lastIndexOf: (searchString: string, position?: number) => number;
                localeCompare: {
                    (that: string): number;
                    (that: string, locales?: string | string[], options?: Intl.CollatorOptions): number;
                    (that: string, locales?: Intl.LocalesArgument, options?: Intl.CollatorOptions): number;
                };
                match: {
                    (regexp: string | RegExp): RegExpMatchArray | null;
                    (matcher: {
                        [Symbol.match](string: string): RegExpMatchArray | null;
                    }): RegExpMatchArray | null;
                };
                replace: {
                    (searchValue: string | RegExp, replaceValue: string): string;
                    (searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string;
                    (searchValue: {
                        [Symbol.replace](string: string, replaceValue: string): string;
                    }, replaceValue: string): string;
                    (searchValue: {
                        [Symbol.replace](string: string, replacer: (substring: string, ...args: any[]) => string): string;
                    }, replacer: (substring: string, ...args: any[]) => string): string;
                };
                search: {
                    (regexp: string | RegExp): number;
                    (searcher: {
                        [Symbol.search](string: string): number;
                    }): number;
                };
                slice: (start?: number, end?: number) => string;
                split: {
                    (separator: string | RegExp, limit?: number): string[];
                    (splitter: {
                        [Symbol.split](string: string, limit?: number): string[];
                    }, limit?: number): string[];
                };
                substring: (start: number, end?: number) => string;
                toLowerCase: () => string;
                toLocaleLowerCase: {
                    (locales?: string | string[]): string;
                    (locales?: Intl.LocalesArgument): string;
                };
                toUpperCase: () => string;
                toLocaleUpperCase: {
                    (locales?: string | string[]): string;
                    (locales?: Intl.LocalesArgument): string;
                };
                trim: () => string;
                readonly length: number;
                substr: (from: number, length?: number) => string;
                valueOf: () => string;
                codePointAt: (pos: number) => number | undefined;
                includes: (searchString: string, position?: number) => boolean;
                endsWith: (searchString: string, endPosition?: number) => boolean;
                normalize: {
                    (form: "NFC" | "NFD" | "NFKC" | "NFKD"): string;
                    (form?: string): string;
                };
                repeat: (count: number) => string;
                startsWith: (searchString: string, position?: number) => boolean;
                anchor: (name: string) => string;
                big: () => string;
                blink: () => string;
                bold: () => string;
                fixed: () => string;
                fontcolor: (color: string) => string;
                fontsize: {
                    (size: number): string;
                    (size: string): string;
                };
                italics: () => string;
                link: (url: string) => string;
                small: () => string;
                strike: () => string;
                sub: () => string;
                sup: () => string;
                padStart: (maxLength: number, fillString?: string) => string;
                padEnd: (maxLength: number, fillString?: string) => string;
                trimEnd: () => string;
                trimStart: () => string;
                trimLeft: () => string;
                trimRight: () => string;
                matchAll: (regexp: RegExp) => RegExpStringIterator<RegExpExecArray>;
                replaceAll: {
                    (searchValue: string | RegExp, replaceValue: string): string;
                    (searchValue: string | RegExp, replacer: (substring: string, ...args: any[]) => string): string;
                };
                [Symbol.iterator]: () => StringIterator<string>;
                at: (index: number) => string;
            };
            country_code: string;
            email: string;
            current_booking: string;
            created_at: number;
        }> & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        })[];
        pagination: {
            total: number;
            page: number;
            limit: number;
            totalPages: number;
        };
    }>;
    create(createBookingDto: BookingDto | ScheduleBookingDto, req: any): Promise<{
        message: import("../common/helpers/message-keys.enum").MessageKey;
        data: any;
        bookings: any[];
        payload: any;
        summary: {
            total_amount: number;
            agent_commission: number;
            final_Amount: number;
            total_vehicles: number;
        };
        booking_group_id: any;
        total_vehicles: number;
    }>;
    createAgent(createAgentDto: editProfileDto): Promise<import("mongoose").Document<unknown, {}, import("./schema/agent.schema").Agent, {}, {}> & import("./schema/agent.schema").Agent & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }>;
    createCustomer(createCustomerDto: CreateCustomerDto, req: any): Promise<import("mongoose").Document<unknown, {}, import("./schema/agent-customer.schema").AgentCustomer, {}, {}> & import("./schema/agent-customer.schema").AgentCustomer & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }>;
    make_payment(body: MakePaymentDto, req: any): Promise<any>;
    profile(req: any): Promise<(import("mongoose").Document<unknown, {}, import("./schema/agent.schema").Agent, {}, {}> & import("./schema/agent.schema").Agent & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }) | {
        message: import("../common/helpers/message-keys.enum").MessageKey;
    }>;
    updateProfile(body: editProfileDto, req: any): Promise<import("mongoose").Document<unknown, {}, import("./schema/agent.schema").Agent, {}, {}> & import("./schema/agent.schema").Agent & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }>;
    cancelBooking(req: any, id: string): Promise<{
        message: any;
        refund: void;
    }>;
    updateCommission(body: any, id: string): Promise<import("mongoose").Document<unknown, {}, import("./schema/agent.schema").Agent, {}, {}> & import("./schema/agent.schema").Agent & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }>;
    blockAgent(id: string, body: any): Promise<{
        message: import("../common/helpers/message-keys.enum").MessageKey;
        agent: import("mongoose").Document<unknown, {}, import("./schema/agent.schema").Agent, {}, {}> & import("./schema/agent.schema").Agent & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    deleteAgent(id: string): Promise<{
        message: import("../common/helpers/message-keys.enum").MessageKey;
    }>;
    approveAgent(id: string, payload: any): Promise<{
        message: import("../common/helpers/message-keys.enum").MessageKey;
        agent: import("mongoose").Document<unknown, {}, import("./schema/agent.schema").Agent, {}, {}> & import("./schema/agent.schema").Agent & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    getAgent(id: string): Promise<any>;
    booking_cancelled(id: string, body: CancelBookingDto, req: any): Promise<{
        message: any;
    }>;
    sendOtp(dto: SendOtpDto, req: any): Promise<{
        message: import("../common/helpers/message-keys.enum").MessageKey;
        data: {
            otpId: import("mongoose").Types.ObjectId;
        };
    }>;
    verifyOtp(dto: VerifyOtpDto, req: any): Promise<(import("mongoose").Document<unknown, {}, import("./schema/agent-customer.schema").AgentCustomer, {}, {}> & import("./schema/agent-customer.schema").AgentCustomer & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }) | {
        message: import("../common/helpers/message-keys.enum").MessageKey;
    }>;
}
