import { RestaurantService } from './restaurant.service';
import { AddDiscountDto, CreateRestaurantDto, CreateRestaurantServiceDto, goOnlineDto, restaurant_request_list_dto, restaurantAdminListingDto, UpdatePendingRestaurantStatusDto, restaurantAdminQuickListingDto, RestaurantBlockDto, RestaurantEarningsDto, RestaurantOrdersDto, restaurantRequestListingDto, restaurantUpdateListingDto, UpdateRestaurantDto, UpdateRestaurantRequestDto, UpdateRestaurantServiceDto, GetServicesDto, UpdateVendorCommissionDto } from './dto/restaurant.dto';
import { recent_order_list } from 'src/order/dto/order.dto';
import { featuresListDto } from 'src/customer/dto/customer.dto';
export declare class RestaurantController {
    private readonly restaurantService;
    constructor(restaurantService: RestaurantService);
    featuresList(dto: featuresListDto, req: any): Promise<{
        data: any[];
        most_discounted_restaurant?: undefined;
        popular_restaurant?: undefined;
        new_restaurant?: undefined;
        customer_like_restaurant?: undefined;
        near_by_restaurant?: undefined;
    } | {
        most_discounted_restaurant: any[];
        popular_restaurant: any[];
        new_restaurant: any[];
        customer_like_restaurant: any[];
        near_by_restaurant: any[];
        data?: undefined;
    }>;
    featuresListGuest(dto: featuresListDto): Promise<{
        data: any[];
        most_discounted_restaurant?: undefined;
        popular_restaurant?: undefined;
        new_restaurant?: undefined;
        customer_like_restaurant?: undefined;
        near_by_restaurant?: undefined;
    } | {
        most_discounted_restaurant: any[];
        popular_restaurant: any[];
        new_restaurant: any[];
        customer_like_restaurant: any[];
        near_by_restaurant: any[];
        data?: undefined;
    }>;
    popularFoodItem(id: string): Promise<{
        food_items: (import("mongoose").Document<unknown, {}, import("../food/schema/food-item.schema").FoodItems, {}, {}> & import("../food/schema/food-item.schema").FoodItems & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        })[];
    }>;
    amenities(): Promise<{
        data: (import("mongoose").Document<unknown, {}, import("./schema/amenities.schema").Amenities, {}, {}> & import("./schema/amenities.schema").Amenities & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        })[];
    }>;
    addServices(dto: CreateRestaurantServiceDto): Promise<{
        data: import("mongoose").Document<unknown, {}, import("./schema/services.schema").Services, {}, {}> & import("./schema/services.schema").Services & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    updateServices(dto: UpdateRestaurantServiceDto, id: string): Promise<{
        data: import("mongoose").Document<unknown, {}, import("./schema/services.schema").Services, {}, {}> & import("./schema/services.schema").Services & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    deleteServices(id: string): Promise<{
        data: string;
    }>;
    services(dto: GetServicesDto): Promise<{
        data: (import("mongoose").Document<unknown, {}, import("./schema/services.schema").Services, {}, {}> & import("./schema/services.schema").Services & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        })[];
    }>;
    serviceDetails(id: string): Promise<{
        data: import("mongoose").Document<unknown, {}, import("./schema/services.schema").Services, {}, {}> & import("./schema/services.schema").Services & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    findModules(id: string): Promise<{
        restaurant_id: import("mongoose").Types.ObjectId;
        isDineOut: boolean;
        isFoodDelivery: boolean;
        catering_services: boolean;
    }>;
    create(body: CreateRestaurantDto, req: any): Promise<{
        data: import("mongoose").Document<unknown, {}, import("./schema/restaurant.schema").Restaurant, {}, {}> & import("./schema/restaurant.schema").Restaurant & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    updateRestaurant(id: string, body: UpdateRestaurantDto, req: any): Promise<{
        data: any;
    }>;
    find(id: string): Promise<{
        data: any;
    }>;
    findAll(req: any): Promise<{
        data: any[];
    }>;
    GoOnlineOffline(body: goOnlineDto): Promise<{
        message: string;
    }>;
    submitRestaurantVerification(req: any): Promise<{
        message: string;
    }>;
    restaurant(body: restaurantAdminListingDto, req: any): Promise<{
        count: any;
        data: any;
        active_restaurant_count: number;
        blocked_restaurant_count: number;
        deleted_restaurant_count: number;
    }>;
    restuarant_listing_select_for_quick_picks(body: restaurantAdminQuickListingDto): Promise<{
        count: number;
        data: (import("mongoose").FlattenMaps<{
            slug: string;
            vendor_id: string;
            type: string;
            restaurant_name: string;
            restaurant_phone: string;
            average_preparing_time: number;
            address: {
                name: string;
                building_no: string;
                tower: string;
                area: string;
                city: string;
                nearby_landmark: string;
                lat: {
                    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;
                };
                long: {
                    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;
                };
            };
            location: {
                type: string;
                coordinates: number[];
            };
            country_code: string;
            image: string;
            food_licence_image: string;
            status: import("./schema/restaurant.schema").restaurantStatus;
            working_day: {
                day: string;
                is_24_hrs: boolean;
                day_id: string;
                timing: {
                    start_time: string;
                    end_time: string;
                }[];
            }[];
            dine_out_working_day: {
                day: string;
                is_24_hrs: boolean;
                day_id: string;
                timing: {
                    start_time: string;
                    end_time: string;
                }[];
            }[];
            food_type: string[];
            is_active: boolean;
            is_block: boolean;
            reason: string;
            rating: number;
            is_restaurant_verified: boolean;
            is_submit_verification: boolean;
            is_restaurant_update: boolean;
            is_docs_update: boolean;
            verification: import("./schema/restaurant.schema").RestaurantVerificationStatus;
            doc_update_verification: import("./schema/restaurant.schema").RestaurantVerificationStatus;
            is_quick_pick: boolean;
            quick_pick_time: number;
            total_orders: number;
            is_deleted: boolean;
            report_reason_id: string;
            created_at: number;
            updated_at: number;
            restaurant_discount: {
                discount: number;
                start_time: number;
                end_time: number;
            };
            restaurant_discount_update: boolean;
            is_verfication_submitted: boolean;
            restaurant_type?: string;
            isFoodDelivery: boolean;
            isDineOut: boolean;
            catering_services: boolean;
            estimated_price_per_plate: number;
            booking_amount: number;
            uploadRestaurantMenu?: string[];
            uploadRestaurantPhotos?: string[];
            services: string[];
            amenities?: string[];
            cuisine_ids?: string[];
            maximum_capacity_slot: number;
            buffer_time: number;
            total_availability: {
                table: string;
                seats: number;
            }[];
            subscribers_limit: {
                type: {
                    toString: (radix?: number) => string;
                    toFixed: (fractionDigits?: number) => string;
                    toExponential: (fractionDigits?: number) => string;
                    toPrecision: (precision?: number) => string;
                    valueOf: () => number;
                    toLocaleString: {
                        (locales?: string | string[], options?: Intl.NumberFormatOptions): string;
                        (locales?: Intl.LocalesArgument, options?: Intl.NumberFormatOptions): string;
                    };
                };
                default: 0;
            };
            referral_user: string;
            referral_path: string[];
            vendor_commission: number;
            embedding: number[];
            pending_status: string;
            pending_status_reason: string;
        }> & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        })[];
    }>;
    restaurantRequested(body: restaurantRequestListingDto): Promise<{
        count: any;
        data: any;
    }>;
    restaurantdetail(id: string): Promise<{
        data: any;
    }>;
    updateRestaurantRequest(body: UpdateRestaurantRequestDto, _id: string): Promise<{
        message: string;
    }>;
    Block(body: RestaurantBlockDto): Promise<{
        message: string;
    }>;
    updatePendingStatus(body: UpdatePendingRestaurantStatusDto): Promise<{
        message: string;
    }>;
    restaurantOrders(body: RestaurantOrdersDto): Promise<{
        count: any;
        data: any;
    }>;
    restaurantEarnings(body: RestaurantEarningsDto): Promise<{
        data: {
            week_start: number;
            week_end: number;
            no_of_orders: any;
            food_amount: number;
            app_commission: number;
            total_amount_to_be_paid: number;
        }[];
    }>;
    restaurantMenu(body: RestaurantOrdersDto): Promise<{
        data_count: number;
        data: unknown[];
    }>;
    restaurantUpdateList(body: restaurantUpdateListingDto): Promise<{
        count: any;
        data: any;
    }>;
    restuarant_list_all(body: restaurant_request_list_dto, req: any): Promise<{
        count: any;
        data: any;
        pending_count: number;
        rejected_count: number;
    }>;
    recentOrderListsByRestaurantId(restaurant_id: string, body: recent_order_list): Promise<{
        count: number;
        data: (import("mongoose").Document<unknown, {}, import("../order/schema/order.schema").Orders, {}, {}> & import("../order/schema/order.schema").Orders & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        })[];
        current_page: number;
        total_pages: number;
    }>;
    discount(dto: AddDiscountDto, req: any): Promise<{
        status: boolean;
        message: string;
    }>;
    updateVendorCommission(restaurant_id: string, dto: UpdateVendorCommissionDto): Promise<{
        message: string;
        data: import("mongoose").Document<unknown, {}, import("./schema/restaurant.schema").Restaurant, {}, {}> & import("./schema/restaurant.schema").Restaurant & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
}
