import { DbService } from 'src/db/db.service';
import { AdminUpdateDriverDto, SignInDto } from './dto/admin.dto';
import { JwtService } from '@nestjs/jwt';
import { AdminAggregation } from './admin.aggregation';
import { CommonService } from 'src/common/common.service';
import { EarningService } from 'src/earning/earning.service';
import { PaymentService } from 'src/payment/payment.service';
import { EditvehicleDetailDto } from 'src/fleet/dto/fleet.dto';
import { vehicleDetailDto } from 'src/driver/dto/driver.dto';
import { VehicleDetailsOwner } from 'src/driver/schema/vehicle-detail.schema';
import mongoose from 'mongoose';
import { PaginationDto } from 'src/fleet-pass/dto/create-payout-subscription.dto';
export declare class AdminService {
    private readonly model;
    private readonly jwtService;
    private readonly adminAggregation;
    private readonly commonService;
    private readonly earningService;
    private readonly paymentService;
    constructor(model: DbService, jwtService: JwtService, adminAggregation: AdminAggregation, commonService: CommonService, earningService: EarningService, paymentService: PaymentService);
    bootstrap_for_admin(): Promise<void>;
    login(signInDto: SignInDto): Promise<{
        token: string;
        data: {
            currency: string;
            currency_symbol: string;
            distance_unit: string;
            type: string;
            name: string;
            email: string;
            password: string;
            image: string;
            total_tax_pay: number;
            roles: string[];
            is_active: boolean;
            superAdmin: boolean;
            subAdmin: boolean;
            country_code: string;
            phone: string;
            timeZone: string;
            is_deleted: boolean;
            created_at: number;
            updated_at: number;
            deleted_at: number;
            _id: mongoose.Types.ObjectId;
            __v: number;
        };
    }>;
    get_admin_profile(payload: any): Promise<{
        data: {
            currency: string;
            currency_symbol: string;
            distance_unit: string;
            type: string;
            name: string;
            email: string;
            password: string;
            image: string;
            total_tax_pay: number;
            roles: string[];
            is_active: boolean;
            superAdmin: boolean;
            subAdmin: boolean;
            country_code: string;
            phone: string;
            timeZone: string;
            is_deleted: boolean;
            created_at: number;
            updated_at: number;
            deleted_at: number;
            _id: mongoose.Types.ObjectId;
            __v: number;
        };
    }>;
    addVehicle(body: vehicleDetailDto): Promise<{
        message: string;
    }>;
    editVehicle(body: EditvehicleDetailDto): Promise<{
        message: string;
        data: mongoose.Document<unknown, {}, import("src/driver/schema/vehicle-detail.schema").Vehicle_details, {}, {}> & import("src/driver/schema/vehicle-detail.schema").Vehicle_details & {
            _id: mongoose.Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    getAllVehicles(dto: PaginationDto): Promise<{
        message: string;
        data: (mongoose.FlattenMaps<{
            driver_id: string;
            owner: VehicleDetailsOwner;
            fleet_id: string;
            vehicle_id: string;
            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;
            insurance_expiry_date: number;
            registration_expiry_date: number;
            status: string;
            approved_on: number;
            rejection_reason: string;
            created_at: number;
            updated_at: number;
        }> & {
            _id: mongoose.Types.ObjectId;
        } & {
            __v: number;
        })[];
        count: number;
    }>;
    getVehicleDetail(vehicleId: string): Promise<{
        message: string;
        data: mongoose.FlattenMaps<{
            driver_id: string;
            owner: VehicleDetailsOwner;
            fleet_id: string;
            vehicle_id: string;
            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;
            insurance_expiry_date: number;
            registration_expiry_date: number;
            status: string;
            approved_on: number;
            rejection_reason: string;
            created_at: number;
            updated_at: number;
        }> & {
            _id: mongoose.Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    assignVehicleToDriver(body: any): Promise<{
        message: string;
        data: mongoose.Document<unknown, {}, import("src/vehicle/schema/vehicle-assignment.schema").VehicleAssignment, {}, {}> & import("src/vehicle/schema/vehicle-assignment.schema").VehicleAssignment & {
            _id: mongoose.Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    updateVehicleAssignment(body: any, assignmentId: string): Promise<{
        message: string;
        data: mongoose.Document<unknown, {}, import("src/vehicle/schema/vehicle-assignment.schema").VehicleAssignment, {}, {}> & import("src/vehicle/schema/vehicle-assignment.schema").VehicleAssignment & {
            _id: mongoose.Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    getAssignedDriversForVehicle(vehicleId: string): Promise<{
        message: string;
        data: (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("src/vehicle/schema/vehicle-assignment.schema").VehicleAssignmentType;
            created_at: number;
            updated_at: number;
        }> & {
            _id: mongoose.Types.ObjectId;
        } & {
            __v: number;
        })[];
    }>;
    unAssignVehicleFromDriver(assignmentId: string): Promise<{
        message: string;
        data: 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("src/vehicle/schema/vehicle-assignment.schema").VehicleAssignmentType;
            created_at: number;
            updated_at: number;
        }> & {
            _id: mongoose.Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    sent_notification(body: any): Promise<void>;
    sent_email(data: any, title: any, description: any): Promise<void>;
    sent_push(data: any, title: any, description: any): Promise<void>;
    dashboard_count(): Promise<{
        OverallBooking: any;
        TodayBooking: any;
        MonthlyBooking: any;
        WeeklyBooking: 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;
        overallEarning: number;
        todayEarning: number;
        weeklyEarning: number;
        monthlyEarning: 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;
    }>;
    AdminChangePassword(body: any, id: string): Promise<{
        message: string;
    }>;
    AdminPayout(page: any, limit: any): 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(body: any, admin_id: any, timeZone?: string): Promise<{
        message: string;
    }>;
    TaxTransactionHistory(page: any, limit: any): Promise<{
        data: (mongoose.Document<unknown, {}, import("../payment/schema/tax.schema").Tax, {}, {}> & import("../payment/schema/tax.schema").Tax & {
            _id: mongoose.Types.ObjectId;
        } & {
            __v: number;
        })[];
        count: number;
    }>;
    total_tax_amount(admin_id: any): Promise<{
        total_tax_collected: string;
        total_tax_paid: string;
        total_tax_to_be_paid: string;
    }>;
    PayToAppList(page: any, limit: any): Promise<{
        data: any[];
    }>;
    AdminPayoutExport(body: any): Promise<{
        week_data: any[];
    }>;
    adminUpdateDriver(driverId: string, body: AdminUpdateDriverDto): Promise<{
        success: boolean;
        message: string;
    }>;
    checkIsDuplicateEmail(driverId: string, email: string): Promise<boolean>;
    adminSetVehicleDetails(driverId: string, body: vehicleDetailDto, req: any): Promise<{
        success: boolean;
        message: string;
    }>;
}
