import { DbService } from 'src/db/db.service';
import { AddVehicleDto, addVehicleDto, ServiceAreaPricingDto } from './dto/vehicle.dto';
import { VehicleAggreagation } from './vehicle.aggregation';
import { CommonService } from 'src/common/common.service';
import { Types } from 'mongoose';
export declare class VehicleService {
    private readonly model;
    private readonly vehicleAggregation;
    private readonly commonService;
    constructor(model: DbService, vehicleAggregation: VehicleAggreagation, commonService: CommonService);
    getServiceAreaPricing(serviceAreaPricingId: string, vehicleId?: string): Promise<{
        data: {
            serviceArea: any;
            service_area_id: any;
            vehicle_id: string;
            commission_percentage: import("mongoose").FlattenMaps<{
                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;
                };
            }>;
            app_commission_value: number;
            app_commission_unit: string;
            distance_price: import("mongoose").FlattenMaps<{
                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;
                };
            }>;
            base_fare: import("mongoose").FlattenMaps<{
                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;
                };
            }>;
            base_km: import("mongoose").FlattenMaps<{
                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;
                };
            }>;
            cancellation_charges: import("mongoose").FlattenMaps<{
                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;
                };
            }>;
            base_mins: import("mongoose").FlattenMaps<{
                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;
                };
            }>;
            load_unload_charges: import("mongoose").FlattenMaps<{
                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;
                };
            }>;
            free_load_unload_time: import("mongoose").FlattenMaps<{
                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;
                };
            }>;
            per_min_fare: import("mongoose").FlattenMaps<{
                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;
                };
            }>;
            surcharge_price: import("mongoose").FlattenMaps<{
                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;
                };
            }>;
            gst_percentage: string;
            stop_charges: import("mongoose").FlattenMaps<{
                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;
                };
            }>;
            city_fees: import("mongoose").FlattenMaps<{
                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;
                };
            }>;
            city_fees_unit: import("mongoose").FlattenMaps<{
                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;
            }>;
            insurance_fees: import("mongoose").FlattenMaps<{
                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;
                };
            }>;
            airport_pickup_charges: number;
            airport_drop_charges: number;
            is_active: boolean;
            created_at: number;
            updated_at: number;
            interncity_distance_price: string;
            intercity_commision_percentage: number;
            intercity_base_fare: number;
            intercity_base_km: number;
            intercity_per_min_fare: number;
            intercity_base_mins: number;
            night_charges: number;
            hourly_rate: number;
            hourly_max_km: number;
            hourly_km_rate: number;
            car_pooling_max_passengers: number;
            car_pooling_discount_percentage: number;
            _id: Types.ObjectId;
            __v: number;
        };
        message: string;
    }>;
    updateOrAddServiceAreaPricing(vehicleId: string, service_area: ServiceAreaPricingDto): Promise<{
        data: import("mongoose").Document<unknown, {}, import("./schema/service-area-pricing.schema").ServiceAreaPricing, {}, {}> & import("./schema/service-area-pricing.schema").ServiceAreaPricing & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
        message: string;
    }>;
    getUlternateVehicleTypeOptions(vehicleId: string): Promise<{
        data: {
            _id: Types.ObjectId;
            vehicle_type: string;
        }[];
    }>;
    getNames(query: any): Promise<{
        city: any;
        state: any;
        country: any;
    }>;
    findVehicleType(payload: any): Promise<{
        data: any[];
    }>;
    getFleetVehiclesByStatus(status: string, query: any): Promise<{
        message: string;
        data: any;
        meta: {
            page: number;
            limit: number;
            totalPages: number;
            total: any;
        };
        rejected_fleet: number;
        request_fleet: number;
        active_fleet: number;
        in_active_fleet: number;
    }>;
    getAllFleetVehicles(fleetId: string, query: any): Promise<{
        message: string;
        data: any;
        meta: {
            page: number;
            limit: number;
            totalPages: number;
            total: any;
        };
    }>;
    getFleetVehicleDetail(id: string): Promise<{
        message: string;
        data: import("mongoose").FlattenMaps<{
            driver_id: string;
            owner: import("../driver/schema/vehicle-detail.schema").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: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    getFleetVehicles(id: string): Promise<{
        message: string;
        data: (import("mongoose").FlattenMaps<{
            driver_id: string;
            owner: import("../driver/schema/vehicle-detail.schema").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: Types.ObjectId;
        } & {
            __v: number;
        })[];
    }>;
    getParcelDetails(id: string): Promise<{
        data: {
            description: string;
            image: string;
        }[];
        success: boolean;
    }>;
    findVehicleTypeAdmin(): Promise<{
        data: (import("mongoose").Document<unknown, {}, import("./schema/vehicle-type.schema").Vehicle_types, {}, {}> & import("./schema/vehicle-type.schema").Vehicle_types & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        })[];
    }>;
    DocUpdateHistory(id: any, page: any, limit: any): Promise<{
        count: number;
        data: (import("mongoose").Document<unknown, {}, import("../driver/schema/docs-update-history").DocsUpdateHistory, {}, {}> & import("../driver/schema/docs-update-history").DocsUpdateHistory & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        })[];
    }>;
    updateVehicleStatus(updateFleetStatusDto: any): Promise<{
        message: string;
        data: import("mongoose").Document<unknown, {}, import("../driver/schema/vehicle-detail.schema").Vehicle_details, {}, {}> & import("../driver/schema/vehicle-detail.schema").Vehicle_details & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        };
    }>;
    findVehicleTypeRemainingAdmin(): Promise<{
        data: (import("mongoose").Document<unknown, {}, import("./schema/vehicle-type.schema").Vehicle_types, {}, {}> & import("./schema/vehicle-type.schema").Vehicle_types & {
            _id: Types.ObjectId;
        } & {
            __v: number;
        })[];
    }>;
    add(dto: AddVehicleDto): Promise<import("mongoose").Document<unknown, {}, import("./schema/vehicle-type.schema").Vehicle_types, {}, {}> & import("./schema/vehicle-type.schema").Vehicle_types & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    }>;
    create(createVehicleDto: addVehicleDto): Promise<{
        message: string;
        data: {
            _id: Types.ObjectId;
        };
    }>;
    findAll(body: any): Promise<{
        count: any;
        data: any;
    }>;
    findOne(id: string): Promise<any>;
    update(id: string, updateVehicleDto: addVehicleDto): Promise<{
        message: string;
    }>;
    remove(id: string): Promise<{
        message: string;
    }>;
    find_by_vehicle_name(name: string): Promise<import("mongoose").Document<unknown, {}, import("./schema/vehicle.schema").VehiclesPrices, {}, {}> & import("./schema/vehicle.schema").VehiclesPrices & {
        _id: Types.ObjectId;
    } & {
        __v: number;
    }>;
    bootstrap_for_created_vehicle_type(): Promise<void>;
    deactivate(id: any, status: any): Promise<{
        message: string;
    }>;
}
