import { OrderService } from './order.service';
import { AdminPlaceOrderDto, ApplyPromoCode, MenuFilterDto, orderInvoiceList, orderList, OrderPlacedDto, orderSubscriptionsListDto, orderSubscriptionsStatusDto, RefundDto, RestaurantDetailDto, UserRecommendationDto, ReassignHandoverDriverDto, AcceptHandoverDto, ConfirmHandoverPickupDto, UpdateHandoverStatusDto } from './dto/order.dto';
import { CreateGuestOrderDto } from './dto/create-guest-order.dto';
import { JwtService } from '@nestjs/jwt';
import { HeatMapQueryDto } from './dto/heat-map-query.dto';
import { Types } from 'mongoose';
export declare class OrderController {
    private readonly orderService;
    private readonly jwtService;
    constructor(orderService: OrderService, jwtService: JwtService);
    RestaurantDetail(id: string, req: any, body: RestaurantDetailDto): Promise<{
        data: {
            category: (import("mongoose").Document<unknown, {}, import("../category/schema/category.schema").Category, {}, {}> & import("../category/schema/category.schema").Category & {
                _id: Types.ObjectId;
            } & {
                __v: number;
            })[];
            rating_count: number;
            is_fav: boolean;
            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: String;
                long: String;
            };
            location: {
                type: string;
                coordinates: number[];
            };
            country_code: string;
            image: string;
            food_licence_image: string;
            status: import("../restaurant/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("../restaurant/schema/restaurant.schema").RestaurantVerificationStatus;
            doc_update_verification: import("../restaurant/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: import("../restaurant/schema/restaurant.schema").Availability[];
            subscribers_limit: {
                type: Number;
                default: 0;
            };
            referral_user: string;
            referral_path: string[];
            vendor_commission: number;
            embedding: number[];
            pending_status: string;
            pending_status_reason: string;
            _id: Types.ObjectId;
            __v: number;
        };
        offers: (import("mongoose").Document<unknown, {}, import("../coupon/schema/coupon.schema").Coupons, {}, {}> & import("../coupon/schema/coupon.schema").Coupons & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        })[];
        distance: any;
        displacement_only_for_test: number;
        duration: any;
    }>;
    RestaurantMenu(id: string, req: any, body: MenuFilterDto): Promise<{
        data: any[];
        restaurant: import("mongoose").Document<unknown, {}, import("../restaurant/schema/restaurant.schema").Restaurant, {}, {}> & import("../restaurant/schema/restaurant.schema").Restaurant & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    SearchRestaurantDish(id: string, search: string, req: any): Promise<{
        data: (import("mongoose").Document<unknown, {}, import("../food/schema/food-item.schema").FoodItems, {}, {}> & import("../food/schema/food-item.schema").FoodItems & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        })[];
    }>;
    AvalaibleCoupons(restaurant_id: string, search: string, req: any): Promise<{
        data: (import("mongoose").FlattenMaps<{
            code: string;
            description: string;
            discount_percentage: number;
            minimum_booking_amount: number;
            valid_upto: number;
            maximum_discount_amount: number;
            type: string;
            used_by: string[];
            date_of_use: number;
            status: string;
            created_at: number;
            updated_at: number;
        }> & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        })[];
    }>;
    OrderPlaced(req: any, body: OrderPlacedDto): Promise<{
        status: boolean;
        message: string;
        data?: undefined;
        order_id?: undefined;
        is_payment_required?: undefined;
        return_url?: undefined;
        client_secret?: undefined;
        ephemeralKey?: undefined;
        customer?: undefined;
        razorpay?: undefined;
        cashfree?: undefined;
        amount?: undefined;
        paytab?: undefined;
    } | {
        data: any;
        status?: undefined;
        message?: undefined;
        order_id?: undefined;
        is_payment_required?: undefined;
        return_url?: undefined;
        client_secret?: undefined;
        ephemeralKey?: undefined;
        customer?: undefined;
        razorpay?: undefined;
        cashfree?: undefined;
        amount?: undefined;
        paytab?: undefined;
    } | {
        status: boolean;
        message: string;
        data: any;
        order_id?: undefined;
        is_payment_required?: undefined;
        return_url?: undefined;
        client_secret?: undefined;
        ephemeralKey?: undefined;
        customer?: undefined;
        razorpay?: undefined;
        cashfree?: undefined;
        amount?: undefined;
        paytab?: undefined;
    } | {
        order_id: any;
        is_payment_required: boolean;
        return_url: string;
        message: string;
        status?: undefined;
        data?: undefined;
        client_secret?: undefined;
        ephemeralKey?: undefined;
        customer?: undefined;
        razorpay?: undefined;
        cashfree?: undefined;
        amount?: undefined;
        paytab?: undefined;
    } | {
        client_secret: string;
        ephemeralKey: string;
        customer: string;
        data: any;
        status?: undefined;
        message?: undefined;
        order_id?: undefined;
        is_payment_required?: undefined;
        return_url?: undefined;
        razorpay?: undefined;
        cashfree?: undefined;
        amount?: undefined;
        paytab?: undefined;
    } | {
        razorpay: {
            amount: any;
            currency: any;
            id: any;
            order_id: any;
            slot_id: any;
            plate_id: any;
        };
        status?: undefined;
        message?: undefined;
        data?: undefined;
        order_id?: undefined;
        is_payment_required?: undefined;
        return_url?: undefined;
        client_secret?: undefined;
        ephemeralKey?: undefined;
        customer?: undefined;
        cashfree?: undefined;
        amount?: undefined;
        paytab?: undefined;
    } | {
        cashfree: {
            id: any;
            order_meta: any;
            payment_session_id: any;
        };
        amount: any;
        order_id: any;
        status?: undefined;
        message?: undefined;
        data?: undefined;
        is_payment_required?: undefined;
        return_url?: undefined;
        client_secret?: undefined;
        ephemeralKey?: undefined;
        customer?: undefined;
        razorpay?: undefined;
        paytab?: undefined;
    } | {
        paytab: {
            redirect_url: any;
        };
        amount: any;
        status?: undefined;
        message?: undefined;
        data?: undefined;
        order_id?: undefined;
        is_payment_required?: undefined;
        return_url?: undefined;
        client_secret?: undefined;
        ephemeralKey?: undefined;
        customer?: undefined;
        razorpay?: undefined;
        cashfree?: undefined;
    }>;
    OrderPlacedTest(req: any, body: OrderPlacedDto): Promise<{
        status: boolean;
        message: string;
        data?: undefined;
        order_id?: undefined;
        is_payment_required?: undefined;
        return_url?: undefined;
        client_secret?: undefined;
        ephemeralKey?: undefined;
        customer?: undefined;
        razorpay?: undefined;
        cashfree?: undefined;
        amount?: undefined;
        paytab?: undefined;
    } | {
        data: any;
        status?: undefined;
        message?: undefined;
        order_id?: undefined;
        is_payment_required?: undefined;
        return_url?: undefined;
        client_secret?: undefined;
        ephemeralKey?: undefined;
        customer?: undefined;
        razorpay?: undefined;
        cashfree?: undefined;
        amount?: undefined;
        paytab?: undefined;
    } | {
        order_id: any;
        is_payment_required: boolean;
        return_url: string;
        message: string;
        status?: undefined;
        data?: undefined;
        client_secret?: undefined;
        ephemeralKey?: undefined;
        customer?: undefined;
        razorpay?: undefined;
        cashfree?: undefined;
        amount?: undefined;
        paytab?: undefined;
    } | {
        client_secret: string;
        ephemeralKey: string;
        customer: string;
        data: any;
        status?: undefined;
        message?: undefined;
        order_id?: undefined;
        is_payment_required?: undefined;
        return_url?: undefined;
        razorpay?: undefined;
        cashfree?: undefined;
        amount?: undefined;
        paytab?: undefined;
    } | {
        razorpay: {
            amount: any;
            currency: any;
            id: any;
            order_id: any;
            slot_id: any;
            plate_id: any;
        };
        status?: undefined;
        message?: undefined;
        data?: undefined;
        order_id?: undefined;
        is_payment_required?: undefined;
        return_url?: undefined;
        client_secret?: undefined;
        ephemeralKey?: undefined;
        customer?: undefined;
        cashfree?: undefined;
        amount?: undefined;
        paytab?: undefined;
    } | {
        cashfree: {
            id: any;
            order_meta: any;
            payment_session_id: any;
        };
        amount: any;
        order_id: any;
        status?: undefined;
        message?: undefined;
        data?: undefined;
        is_payment_required?: undefined;
        return_url?: undefined;
        client_secret?: undefined;
        ephemeralKey?: undefined;
        customer?: undefined;
        razorpay?: undefined;
        paytab?: undefined;
    } | {
        paytab: {
            redirect_url: any;
        };
        amount: any;
        status?: undefined;
        message?: undefined;
        data?: undefined;
        order_id?: undefined;
        is_payment_required?: undefined;
        return_url?: undefined;
        client_secret?: undefined;
        ephemeralKey?: undefined;
        customer?: undefined;
        razorpay?: undefined;
        cashfree?: undefined;
    }>;
    AdminOrderPlaced(req: any, body: AdminPlaceOrderDto): Promise<{
        status: boolean;
        message: string;
        data?: undefined;
        order_id?: undefined;
        is_payment_required?: undefined;
        return_url?: undefined;
        client_secret?: undefined;
        ephemeralKey?: undefined;
        customer?: undefined;
        razorpay?: undefined;
        cashfree?: undefined;
        amount?: undefined;
        paytab?: undefined;
    } | {
        data: any;
        status?: undefined;
        message?: undefined;
        order_id?: undefined;
        is_payment_required?: undefined;
        return_url?: undefined;
        client_secret?: undefined;
        ephemeralKey?: undefined;
        customer?: undefined;
        razorpay?: undefined;
        cashfree?: undefined;
        amount?: undefined;
        paytab?: undefined;
    } | {
        status: boolean;
        message: string;
        data: any;
        order_id?: undefined;
        is_payment_required?: undefined;
        return_url?: undefined;
        client_secret?: undefined;
        ephemeralKey?: undefined;
        customer?: undefined;
        razorpay?: undefined;
        cashfree?: undefined;
        amount?: undefined;
        paytab?: undefined;
    } | {
        order_id: any;
        is_payment_required: boolean;
        return_url: string;
        message: string;
        status?: undefined;
        data?: undefined;
        client_secret?: undefined;
        ephemeralKey?: undefined;
        customer?: undefined;
        razorpay?: undefined;
        cashfree?: undefined;
        amount?: undefined;
        paytab?: undefined;
    } | {
        client_secret: string;
        ephemeralKey: string;
        customer: string;
        data: any;
        status?: undefined;
        message?: undefined;
        order_id?: undefined;
        is_payment_required?: undefined;
        return_url?: undefined;
        razorpay?: undefined;
        cashfree?: undefined;
        amount?: undefined;
        paytab?: undefined;
    } | {
        razorpay: {
            amount: any;
            currency: any;
            id: any;
            order_id: any;
            slot_id: any;
            plate_id: any;
        };
        status?: undefined;
        message?: undefined;
        data?: undefined;
        order_id?: undefined;
        is_payment_required?: undefined;
        return_url?: undefined;
        client_secret?: undefined;
        ephemeralKey?: undefined;
        customer?: undefined;
        cashfree?: undefined;
        amount?: undefined;
        paytab?: undefined;
    } | {
        cashfree: {
            id: any;
            order_meta: any;
            payment_session_id: any;
        };
        amount: any;
        order_id: any;
        status?: undefined;
        message?: undefined;
        data?: undefined;
        is_payment_required?: undefined;
        return_url?: undefined;
        client_secret?: undefined;
        ephemeralKey?: undefined;
        customer?: undefined;
        razorpay?: undefined;
        paytab?: undefined;
    } | {
        paytab: {
            redirect_url: any;
        };
        amount: any;
        status?: undefined;
        message?: undefined;
        data?: undefined;
        order_id?: undefined;
        is_payment_required?: undefined;
        return_url?: undefined;
        client_secret?: undefined;
        ephemeralKey?: undefined;
        customer?: undefined;
        razorpay?: undefined;
        cashfree?: undefined;
    }>;
    OrderListing(body: orderList, req: any): Promise<{
        data_count: number;
        data: any[];
        active_orders_count: number;
        completed_orders_count: number;
        cancelled_orders_count: number;
        pos_orders_count: number;
        total_order_amount: number;
        total_admin_commission: number;
    }>;
    cancelOrders(_id: string, req: any): Promise<{
        data: import("mongoose").Document<unknown, {}, import("./schema/order.schema").Orders, {}, {}> & import("./schema/order.schema").Orders & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    refundOrderAmountByAdmin(_id: string, body: RefundDto, req: any): Promise<any>;
    updateOrderStatusByAdmin(_id: string, status: string): Promise<{
        data: import("mongoose").Document<unknown, {}, import("./schema/order.schema").Orders, {}, {}> & import("./schema/order.schema").Orders & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    OrderDetail(order_id: string, req: any): Promise<{
        data: any;
    }>;
    getOrderHandoverHistory(order_id: string): Promise<{
        message: string;
        data: {
            order_id: string;
            latest_handover_status: any;
            all_handover_detail: any[];
        };
    }>;
    ApplyPromoCode(body: ApplyPromoCode): Promise<{
        data: any;
    }>;
    downloadInvoice(id: string, body: orderInvoiceList): Promise<{
        url: string;
        data: {
            orderId: any;
            customerName: any;
            driverName: any;
            restaurantName: any;
            subtotal: any;
            tax: any;
            deliveryCharge: any;
            salesCommission: any;
            totalAmount: any;
            date: string;
            cart_items: any;
            other_cart_items: any;
            deliveryAddress: any;
            restaurantAddress: any;
            cart_total_amount: any;
            couponDiscount: any;
            platform_fee: any;
            applied_surcharges: any[];
            tip_amount: any;
            deliver_type: any;
            currencySymbol: any;
            driverCut: any;
        };
        type: any;
    }>;
    assignDriverByAdmin(driver_id: string, order_id: string): Promise<{
        message: string;
        data: import("mongoose").Document<unknown, {}, import("./schema/order.schema").Orders, {}, {}> & import("./schema/order.schema").Orders & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    OrderPlacedForGuest(req: any, body: CreateGuestOrderDto): Promise<{
        data: import("mongoose").Document<unknown, {}, import("./schema/order.schema").Orders, {}, {}> & import("./schema/order.schema").Orders & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    getOrderAnalyticsTable(query: HeatMapQueryDto): Promise<{
        total: number;
        currentPage: number;
        totalPages: number;
        data: any[];
    }>;
    getHeatMapOrders(query: HeatMapQueryDto): Promise<any[]>;
    payWithWallet(body: OrderPlacedDto, req: any): Promise<{
        statusCode: number;
        message: string;
        order: import("mongoose").Document<unknown, {}, import("./schema/order.schema").Orders, {}, {}> & import("./schema/order.schema").Orders & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    getUserRecommendations(req: any, dto: UserRecommendationDto): Promise<{
        statusCode: number;
        message: string;
        result: {
            food_id: Types.ObjectId;
            food_name: string;
            food_rating?: number;
            restaurant_id: Types.ObjectId;
            food_images: {};
            restaurant_name?: string;
            order_count: number;
            price: number;
            food_type: string;
            is_available: boolean;
        }[];
    }>;
    orderSubscriptions(req: any, dto: orderSubscriptionsListDto): Promise<{
        total: number;
        data: any[];
        active_subscription_count: number;
        cancelled_subscription_count: number;
        paused_subscription_count: number;
    }>;
    orderSubscriptionsDetails(req: any, id: string): Promise<{
        data: import("mongoose").Document<unknown, {}, import("./schema/order-subscribe.schema").SubscribeOrder, {}, {}> & import("./schema/order-subscribe.schema").SubscribeOrder & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    orderSubscriptionsStatus(req: any, dto: orderSubscriptionsStatusDto): Promise<{
        status: boolean;
        message: string;
    }>;
    cancelSubscriptonOrder(req: any, id: string): Promise<any>;
    CreateUpcommingOrders(req: any): Promise<{
        status: boolean;
        message: string;
    }>;
    HandleUpcommingOrders(req: any): Promise<void>;
    orderHitory(id: string): Promise<{
        data: (import("mongoose").Document<unknown, {}, import("./schema/order-history.schema").OrderHistory, {}, {}> & import("./schema/order-history.schema").OrderHistory & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        })[];
    }>;
    orderDriverRequests(id: string): Promise<{
        accepted_driver_id: string;
        data: any[];
    }>;
    reassignPickedUpDriverByAdmin(req: any, body: ReassignHandoverDriverDto): Promise<{
        message: string;
        order_id: any;
    } | {
        message: string;
        order_id: any;
        handover_id: any;
        notified_drivers_count: number;
    }>;
    acceptHandoverRequest(req: any, body: AcceptHandoverDto): Promise<{
        message: string;
        handover_id: any;
        previous_driver_location: any;
        driver1_status: any;
        driver2_status: any;
    }>;
    confirmHandoverPickup(req: any, body: ConfirmHandoverPickupDto): Promise<{
        message: string;
        order_id: any;
        handover_id: any;
        driver1_status: any;
        driver2_status: any;
    }>;
    updateHandoverStatus(req: any, body: UpdateHandoverStatusDto): Promise<{
        message: string;
        handover_id: any;
        previous_driver_location: any;
        driver1_status: any;
        driver2_status: any;
    } | {
        message: string;
        order_id: any;
        handover_id: any;
        driver1_status: any;
        driver2_status: any;
        handover_status: any;
    }>;
}
