import { AgentService } from './agent.service';
import { CancelBookingDto } from 'src/booking/dto/booking.dto';
import { DashboardCardsFiltersDto } from './schema/agent.schema';
import { editProfileDto, GetAgentListDto } from './dto/update-agent.dto';
import { BookingDto, ListAgentBookingDto, ScheduleBookingDto } from './dto/booking.dto';
import { CreateCustomerDto, GetCustomerQueryDto } from './dto/customer.dto';
import { MakePaymentDto } from 'src/payment/dto/payment.dto';
export declare class AgentController {
    private readonly agentService;
    constructor(agentService: AgentService);
    findAll(query: GetAgentListDto): Promise<{
        message: string;
        data: (import("mongoose").FlattenMaps<{
            type: string;
            name: string;
            email: string;
            image: string;
            commission_percentage: string;
            current_booking: string;
            country_code: string;
            phone: string;
            timezone: string;
            customer_id: string;
            temp_email: string;
            temp_phone: string;
            temp_country_code: string;
            temp_email_otp: number;
            temp_phone_otp: number;
            temp_email_otp_at: number;
            temp_phone_otp_at: number;
            is_email_verify: boolean;
            is_phone_verify: 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;
        }> & {
            _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, filters: DashboardCardsFiltersDto): Promise<any>;
    getAgentBookings(req: any, query: ListAgentBookingDto): Promise<{
        message: string;
        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;
        };
    }>;
    getAgentBookingDetails(req: any, id: string): Promise<{
        message: string;
        data: any;
    }>;
    customers(req: any, query: GetCustomerQueryDto): Promise<{
        message: string;
        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: string;
        data: import("mongoose").Document<unknown, {}, import("../booking/schema/booking.schema").Booking, {}, {}> & import("../booking/schema/booking.schema").Booking & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        };
        payload: {
            booking_id: string;
            payment_method_id: string;
            payment_type: import("src/payment/dto/payment.dto").PaymentType;
            final_Amount: number;
            agent_commission: 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<{
        client_secret: string;
        paymentIntent: string;
        status: import("stripe").Stripe.PaymentIntent.Status;
        requires_action: boolean;
        amount: number;
        ephemeralKey: any;
        customer: any;
        order_id?: undefined;
        cf_order_id?: undefined;
        payment_sessions_id?: undefined;
    } | {
        order_id: any;
        amount: any;
        client_secret?: undefined;
        paymentIntent?: undefined;
        status?: undefined;
        requires_action?: undefined;
        ephemeralKey?: undefined;
        customer?: undefined;
        cf_order_id?: undefined;
        payment_sessions_id?: undefined;
    } | {
        order_id: any;
        cf_order_id: any;
        payment_sessions_id: any;
        amount: any;
        client_secret?: undefined;
        paymentIntent?: undefined;
        status?: undefined;
        requires_action?: undefined;
        ephemeralKey?: undefined;
        customer?: undefined;
    } | {
        message: 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: string;
    }>;
    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;
    }>;
    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: string;
        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: string;
    }>;
    approveAgent(id: string, payload: any): Promise<{
        message: string;
        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<import("mongoose").Document<unknown, {}, import("./schema/agent.schema").Agent, {}, {}> & import("./schema/agent.schema").Agent & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }>;
    booking_cancelled(id: string, body: CancelBookingDto, req: any): Promise<{
        message: any;
    }>;
}
