import { AdminService } from './admin.service';
import { AdminPasswordDto, AdminPayoutExportDto, AdminUpdateDriverDto, NotificationDto, SignInDto, UpdateTaxAmount, RevenueAnalyticsDto, OrderAnalyticsDto, PerformanceLeaderboardDto, TopUsersDto, pick_restro, pick_restro_list, CloudNotificationListDto } from './dto/admin.dto';
import { EditvehicleDetailDto, vehicleDetailDto } from 'src/fleet/dto/fleet.dto';
import { PaginationDto } from 'src/fleet-pass/dto/create-payout-subscription.dto';
import { CreateSubAdminDto } from './dto/create-staff.dto';
import { UpdateSubAdminDto } from './dto/update-sub-admin.dto';
import { StaffListDto } from './dto/staff-listing.dto';
import { DecryptDataDto } from './dto/decrypt-data.dto';
import { OrderService } from 'src/order/order.service';
import { AdminPlaceOrderDto } from 'src/order/dto/order.dto';
export declare class AdminController {
    private readonly adminService;
    private readonly orderService;
    constructor(adminService: AdminService, orderService: OrderService);
    create(signInDto: SignInDto): Promise<{
        token: String;
        data: {
            currency: string;
            currency_symbol: string;
            distance_unit: string;
            type: string;
            name: string;
            email: string;
            password: string;
            decrypt_password: string;
            image: string;
            total_tax_pay: number;
            roles: string[];
            modules: import("./schema/admin.schema").AdminPanelPages[];
            is_active: boolean;
            superAdmin: boolean;
            subAdmin: boolean;
            country_code: string;
            phone: string;
            phone_no: string;
            status: import("./schema/admin.schema").AdminStatus;
            timeZone: string;
            is_deleted: boolean;
            created_at: number;
            updated_at: number;
            deleted_at: number;
            _id: import("mongoose").Types.ObjectId;
            __v: number;
        };
    }>;
    assignVehicleToDriver(body: any): Promise<{
        message: import("../common/helpers/message-keys.enum").MessageKey;
        data: import("mongoose").Document<unknown, {}, import("../vehicle/schema/vehicle-assignment.schema").VehicleAssignment, {}, {}> & import("../vehicle/schema/vehicle-assignment.schema").VehicleAssignment & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    updateVehicleAssignment(body: any, id: string): Promise<{
        message: import("../common/helpers/message-keys.enum").MessageKey;
        data: import("mongoose").Document<unknown, {}, import("../vehicle/schema/vehicle-assignment.schema").VehicleAssignment, {}, {}> & import("../vehicle/schema/vehicle-assignment.schema").VehicleAssignment & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    unAssignVehicleFromDriver(id: string): Promise<{
        message: import("../common/helpers/message-keys.enum").MessageKey;
        data: import("mongoose").FlattenMaps<{
            vehicle_detail_id: string;
            driver_id: string;
            owner: string;
            owner_id: string;
            weekdays: {
                day: string;
                time_slots: {
                    start_time: string;
                    end_time: string;
                }[];
            }[];
            start_time: string;
            end_time: string;
            start_date_time: string;
            end_date_time: string;
            isActive: boolean;
            isDeleted: boolean;
            assignment_type: import("../vehicle/schema/vehicle-assignment.schema").VehicleAssignmentType;
            created_at: number;
            updated_at: number;
        }> & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    getAssignedDriversForVehicle(id: string): Promise<{
        message: import("../common/helpers/message-keys.enum").MessageKey;
        data: (import("mongoose").FlattenMaps<{
            vehicle_detail_id: string;
            driver_id: string;
            owner: string;
            owner_id: string;
            weekdays: {
                day: string;
                time_slots: {
                    start_time: string;
                    end_time: string;
                }[];
            }[];
            start_time: string;
            end_time: string;
            start_date_time: string;
            end_date_time: string;
            isActive: boolean;
            isDeleted: boolean;
            assignment_type: import("../vehicle/schema/vehicle-assignment.schema").VehicleAssignmentType;
            created_at: number;
            updated_at: number;
        }> & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        })[];
    }>;
    AddVehicle(body: vehicleDetailDto): Promise<{
        message: import("../common/helpers/message-keys.enum").MessageKey;
    }>;
    getAllVehicles(dto: PaginationDto): Promise<{
        message: import("../common/helpers/message-keys.enum").MessageKey;
        data: (import("mongoose").FlattenMaps<{
            driver_id: string;
            owner: import("../driver/schema/vehicle-detail.schema").VehicleDetailsOwner;
            fleet_id: string;
            vehicle_id: string;
            vehicle_manufacture_id: string;
            images: string[];
            vehicle_body_type: string;
            gear_type: string;
            fuel_type: string;
            per_day_price: number;
            allow_self_drive: boolean;
            ac_availability: import("../driver/schema/vehicle-detail.schema").AcAvailability;
            delivery_charges: number;
            name: string;
            model: string;
            number: string;
            color: string;
            vin: string;
            child_seat_availabilty: boolean;
            wheel_chair_availabilty: boolean;
            vehicle_registration_image: string;
            vehicle_insurance_image: string;
            vehicle_usage: string[];
            insurance_expiry_date: number;
            registration_expiry_date: number;
            status: string;
            approved_on: number;
            rejection_reason: string;
            created_at: number;
            updated_at: number;
        }> & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        })[];
        count: number;
    }>;
    getVehicleDetails(id: string): Promise<{
        message: import("../common/helpers/message-keys.enum").MessageKey;
        data: import("mongoose").FlattenMaps<{
            driver_id: string;
            owner: import("../driver/schema/vehicle-detail.schema").VehicleDetailsOwner;
            fleet_id: string;
            vehicle_id: string;
            vehicle_manufacture_id: string;
            images: string[];
            vehicle_body_type: string;
            gear_type: string;
            fuel_type: string;
            per_day_price: number;
            allow_self_drive: boolean;
            ac_availability: import("../driver/schema/vehicle-detail.schema").AcAvailability;
            delivery_charges: number;
            name: string;
            model: string;
            number: string;
            color: string;
            vin: string;
            child_seat_availabilty: boolean;
            wheel_chair_availabilty: boolean;
            vehicle_registration_image: string;
            vehicle_insurance_image: string;
            vehicle_usage: string[];
            insurance_expiry_date: number;
            registration_expiry_date: number;
            status: string;
            approved_on: number;
            rejection_reason: string;
            created_at: number;
            updated_at: number;
        }> & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    EditVehicle(body: EditvehicleDetailDto): Promise<{
        message: import("../common/helpers/message-keys.enum").MessageKey;
        data: import("mongoose").Document<unknown, {}, import("../driver/schema/vehicle-detail.schema").Vehicle_details, {}, {}> & import("../driver/schema/vehicle-detail.schema").Vehicle_details & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    getProfile(req: any): Promise<{
        data: import("./schema/admin.schema").AdminDocment;
    }>;
    dashboard(start_date?: string, end_date?: string): Promise<{
        OverallBooking: any;
        TodayBooking: any;
        MonthlyBooking: any;
        WeeklyBooking: any;
        rangeBooking: any;
        OverallCustomer: any;
        TodayCustomer: any;
        WeeklyCustomer: any;
        MonthlyCustomer: any;
        Overalldriver: any;
        Idledriver: any;
        OnRidedriver: any;
        Offlinedriver: any;
        driverRequestOverall: any;
        driverRequestMontly: any;
        driverRequestWeekly: any;
        docsUpdateRequest: any;
        TodaydocsUpdateRequest: any;
        WeekdocsUpdateRequest: any;
        MontlydocsUpdateRequest: any;
        driverRequestToday: any;
        FleetRequest: any;
        FleetActive: any;
        FleetOverall: any;
        overallEarning: number;
        todayEarning: number;
        weeklyEarning: number;
        monthlyEarning: number;
        rangeEarning: number;
        Pendingcomplaints: any;
        repliedcomplaints: any;
        due_to_app_month: number;
        due_to_app_week: number;
        due_to_app_year: number;
        overall_payout_due: number;
        montly_tax: number;
        year_tax: number;
        overall_tax: number;
        VehicleRequest: any;
    }>;
    sent_notification(body: NotificationDto): Promise<void>;
    AdminChangePasword(req: any, body: AdminPasswordDto): Promise<{
        message: import("../common/helpers/message-keys.enum").MessageKey;
    }>;
    AdminPayout(req: any, page: number, limit: number): Promise<{
        total_due_to_app: number;
        total_due_to_driver: number;
        total_tax_to_be_paid: number;
        total_balance_in_stripe: number;
        week_data: any[];
        meta: {};
    }>;
    UpdateTax(req: any, body: UpdateTaxAmount): Promise<{
        message: import("../common/helpers/message-keys.enum").MessageKey;
    }>;
    TaxTransactionHistory(page: number, limit: number): Promise<{
        data: (import("mongoose").Document<unknown, {}, import("./schema/tax.schema").Tax, {}, {}> & import("./schema/tax.schema").Tax & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        })[];
        count: number;
    }>;
    TaxTransactionExport(start_date?: string, end_date?: string): Promise<{
        data: (import("mongoose").Document<unknown, {}, import("./schema/tax.schema").Tax, {}, {}> & import("./schema/tax.schema").Tax & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        })[];
    }>;
    taxDetail(): Promise<{
        total_tax_collected: number;
        total_tax_paid: number;
        total_tax_to_be_paid: number;
    }>;
    pay_to_driver_list(req: any, page: number, limit: number): Promise<{
        count: number;
        data: any[];
    }>;
    AdminPayoutExport(req: any, body: AdminPayoutExportDto): Promise<{
        week_data: any[];
    }>;
    editDriver(id: string, body: AdminUpdateDriverDto): Promise<{
        message: string;
    }>;
    admin_vehicle_detail(vehicleDetailDto: vehicleDetailDto, req: any, id: string): Promise<{
        message: import("../common/helpers/message-keys.enum").MessageKey;
    }>;
    getDashboardCounts(): Promise<{
        users: {
            total_customers: number;
            blocked_customers: number;
            pending_customers: number;
            total_drivers: number;
            pending_driver_requests: number;
            blocked_drivers: number;
        };
        orders: {
            active_bookings: number;
            completed_bookings: number;
            cancelled_bookings: number;
            total_bookings: number;
            total_coupons: number;
        };
        earnings: {
            year_earnings: number;
        };
        setting: {
            total_service_areas: number;
            total_document_types: number;
        };
        management: {
            total_complaints: number;
            contact_us_count: number;
            contact_pending: number;
            contact_replied: number;
            total_faqs: number;
            total_pages: number;
        };
    }>;
    getDashboardCountsOptimized(): Promise<{
        main_menu: {
            total_top_users: number;
            total_categories: number;
            total_document: number;
            total_cuisine: number;
            total_restaurant_banners: number;
        };
        users: {
            total_customers: any;
            pending_customers: any;
            all_restaurant: any;
            total_categories: number;
            total_restaurant_requests: any;
            total_restaurant_docs_requests: any;
            total_pending_restaurants: any;
            total_drivers: any;
            total_driver_requests: any;
            total_driver_docs_requests: any;
            pending_customers_list: any;
            pending_drivers_list: any;
            total_driver_incentives: number;
            total_driver_incentives_user: number;
            total_customer_queries: number;
        };
        orders: {
            delivery_orders: any;
            total_coupons: number;
            table_order: any;
            dineout_bookings: number;
            auto_renew: number;
            catering_order: number;
            total_driver_product: number;
            total_driver_orders: number;
            total_dineout_services: number;
        };
        earnings: {
            totalEarningCount: number;
            total_payouts_count: any;
            total_payout_requests: number;
        };
        setting: {
            service_location_count: number;
            issue_type_count: number;
            content_pages_count: number;
            faq_count: number;
        };
        management: {
            total_complaints_count: number;
            contact_us_count: number;
            total_extra_chages: number;
        };
    }>;
    userReferralPath(user_id: string, query: any): Promise<{
        data: (import("mongoose").Document<unknown, {}, import("../customer/schema/customer.schema").Customers, {}, {}> & import("../customer/schema/customer.schema").Customers & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        })[];
        total: number;
        currentPage: number;
        totalPages: number;
    }>;
    createSubAdmin(dto: CreateSubAdminDto): Promise<import("mongoose").Document<unknown, {}, import("./schema/admin.schema").Admin, {}, {}> & import("./schema/admin.schema").Admin & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }>;
    updateSubAdmin(id: string, dto: UpdateSubAdminDto): Promise<{
        message: string;
    }>;
    deleteSubAdmin(id: string): Promise<{
        message: string;
    }>;
    getAllStaffs(query: StaffListDto): Promise<{
        currentPage: number;
        totalPages: number;
        totalItems: number;
        staffs: (import("mongoose").Document<unknown, {}, import("./schema/admin.schema").Admin, {}, {}> & import("./schema/admin.schema").Admin & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        })[];
    }>;
    getStaffDetail(id: string): Promise<import("mongoose").Document<unknown, {}, import("./schema/admin.schema").Admin, {}, {}> & import("./schema/admin.schema").Admin & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }>;
    blockUnblockStaff(id: string, status: 'true' | 'false'): Promise<{
        message: string;
    }>;
    rolesList(): Promise<{
        data: typeof import("./schema/admin.schema").AdminPanelPages;
    }>;
    decryptData(body: DecryptDataDto, req: any): Promise<any>;
    topUsers(query: TopUsersDto, req: any): Promise<{
        data: any[];
        total_drivers: number;
        total_restaurants: number;
        total_customers: number;
        total_all: number;
    }>;
    placeOrderForCustomerByAdmin(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;
    }>;
    cloudNotification(body: CloudNotificationListDto): Promise<{
        total: number;
        data: (import("mongoose").Document<unknown, {}, import("../notification/entities/cloud-notification.schema").CloudNotification, {}, {}> & import("../notification/entities/cloud-notification.schema").CloudNotification & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        })[];
    }>;
    add_restro_quick_picks(req: any, body: pick_restro): Promise<{
        data: any[];
        message: string;
    } | {
        data: import("mongoose").UpdateWriteOpResult;
        message?: undefined;
    }>;
    getQuickPicks(body: pick_restro_list, req: any): Promise<{
        data: (import("mongoose").Document<unknown, {}, import("../restaurant/schema/restaurant.schema").Restaurant, {}, {}> & import("../restaurant/schema/restaurant.schema").Restaurant & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        })[];
        count: number;
        totalPages: number;
        currentPage: number;
    }>;
    removeQuickPicks(restaurant_id: string): Promise<import("mongoose").UpdateWriteOpResult>;
    vendorFinancialReport(req: any, page?: number, limit?: number): Promise<{
        data: any;
        total_count: any;
        currentPage: number;
        totalPages: number;
    } | {
        data: any[];
        total_count: number;
        currentPage?: undefined;
        totalPages?: undefined;
    }>;
    driverFinancialReport(req: any, page?: number, limit?: number): Promise<{
        data: any;
        total_count: any;
        currentPage: number;
        totalPages: number;
    } | {
        data: any[];
        total_count: number;
        currentPage?: undefined;
        totalPages?: undefined;
    }>;
    totalRevenue(filterType?: string, filterTypeCamel?: string, filter?: string, startDate?: string, startDateCamel?: string, endDate?: string, endDateCamel?: string): Promise<{
        total_revenue: number;
        total_vendors: number;
        total_drivers: number;
        total_vendor_earning: number;
        total_driver_earning: number;
        admin_commission: {
            from_restaurant: number;
            from_driver: number;
            platform_fees: number;
            total: number;
        };
        payout_due: {
            vendor_payout_due: number;
            driver_payout_due: number;
            total: number;
        };
        cash_due: {
            driver_cash_due: number;
            total: number;
        };
    }>;
    financialDashboardSummary(req: any): Promise<{
        total_revenue: number;
        total_drivers: number;
        vendor_reports: any;
        driver_reports: any;
    }>;
    revenueAnalytics(query: RevenueAnalyticsDto): Promise<{
        name: string;
        revenue: number;
        commission: number;
        payouts: number;
    }[]>;
    revenueAnalyticsSummaryAdmin(filterType?: string, filterTypeCamel?: string, filter?: string, startDate?: string, startDateCamel?: string, endDate?: string, endDateCamel?: string): Promise<{
        admin_commission: {
            restaurant_commission: number;
            driver_commission: number;
            total_platform_fee: number;
            total_admin_commission: number;
        };
        total_revenue: number;
        total_delivery_charges: number;
        total_tax_collected: number;
        total_discounts: number;
        refunds: number;
        average_order_value: number;
        revenue_growth: string;
        period: string;
    }>;
    orderAnalytics(query: OrderAnalyticsDto): Promise<{
        name: string;
        total: number;
        completed: number;
        cancelled: number;
    }[]>;
    vendorPerformanceLeaderboard(query: PerformanceLeaderboardDto): Promise<{
        data: {
            name: string;
            rating: number;
            completion_rate: string;
            avg_prep_time: string;
            active_deliveries: any;
        }[];
        total_count: number;
        currentPage: number;
        totalPages: number;
    }>;
    driverPerformanceLeaderboard(query: PerformanceLeaderboardDto): Promise<{
        data: {
            driver: string;
            rating: any;
            avg_delivery_time: string;
            acceptance_rate: string;
            active_deliveries: any;
        }[];
        total_count: number;
        currentPage: number;
        totalPages: number;
    }>;
    getVendorLinkedDrivers(vendorId: string): Promise<{
        success: boolean;
        data: (import("mongoose").FlattenMaps<{
            referral_id: string;
            is_verfication_submitted: boolean;
            verification: import("../driver/schema/driver.schema").DriverVerificationStatus;
            doc_update_verification: import("../driver/schema/driver.schema").DriverVerificationStatus;
            visa_doc: string;
            name: string;
            email: string;
            driver_service_type: import("../driver/schema/driver.schema").ServiceType;
            deactivate_at: number;
            service_type: string;
            gender: import("../driver/schema/driver.schema").Gender;
            country_code: string;
            rzr_contact_id: string;
            beneId: string;
            commission: number;
            ulternate_vehicle_types: string[];
            service_prefrence: string[];
            vehicle_type_id: string;
            phone: string;
            license_number: string;
            image: string;
            latitude: string;
            longitude: string;
            temp_email: string;
            temp_phone: string;
            temp_country_code: string;
            fleet_id: string;
            temp_email_otp: number;
            temp_phone_otp: number;
            temp_email_otp_at: number;
            temp_phone_otp_at: number;
            is_bank_added: boolean;
            stripe_customer_id: string;
            is_active: boolean;
            is_block: boolean;
            is_approved: boolean;
            is_doc_update: boolean;
            approved_on: number;
            reject_on: number;
            referral_code: string;
            referral_amount: number;
            applied_referral_code: string;
            missing_documents: import("mongoose").Types.ObjectId[];
            applied_referral_code_consumed: boolean;
            reject_reason: string;
            phase_start_at: number;
            total_online_time: number;
            total_on_pickup_time: number;
            total_on_ride_time: number;
            last_phase_start_at: number;
            is_email_verify: boolean;
            is_phone_verify: boolean;
            status: string;
            ride_status: string;
            device_type: string;
            preferred_language: string;
            preferred_currency: string;
            currency_symbol: string;
            pending_submit_cash: number;
            pending_submit_cash_upated_at: number;
            customer_id: string;
            current_booking: string;
            current_pool: string;
            upcoming_booking: string;
            ratings: number;
            socket_id: string;
            connection_id: string;
            currently_send_ride_request: boolean;
            way_points: {
                lat: number;
                lng: number;
            }[];
            currently_send_ride_request_id: string;
            currently_send_ride_request_generate_at: number;
            heading: string;
            set_up_profile: boolean;
            set_up_vehicle: boolean;
            set_up_documents: boolean;
            block_reason: string;
            doc_expiry_type: string[];
            volunteer_ride_count: number;
            level: string;
            documents: {
                type_id: string;
                front_image_id: string;
                back_image_id: string;
                expire_date: number;
                is_expired: boolean;
            }[];
            is_deleted: boolean;
            is_document_missing: boolean;
            timeZone: string;
            created_at: number;
            updated_at: number;
            payout_mode: import("../configuration/schema/app-configuration.schema").PayoutType;
            selected_payout_mode: import("../configuration/schema/app-configuration.schema").PayoutType;
            location: {
                type: string;
                coordinates: number[];
            };
        }> & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        })[];
    }>;
}
