import { ModelsService } from 'src/models/models.service';
import { CommonService } from 'src/common/common.service';
import { Types } from 'mongoose';
import { CreateVehicleDto, UpdateVehicleDto, VehicleListDto, UpdateVehicleStatusDto, GetAvailableVehiclesDto, VerifyVehicleRcDto } from './dto/vehicle.dto';
import { StatusHistoryService } from 'src/status-history/status-history.service';
import { RazorpayService } from 'src/razorpay/razorpay.service';
import { BillingLedgerService } from 'src/subscritpion/billing-ledger.service';
import { PricingService } from 'src/subscritpion/pricing.service';
import { CashfreeService } from 'src/cashfree/cashfree.service';
export declare class VehicleService {
    private readonly models;
    private readonly common;
    private readonly statusHistoryService;
    private readonly razorpayService;
    private readonly billingLedgerService;
    private readonly pricingService;
    private readonly cashfreeService;
    constructor(models: ModelsService, common: CommonService, statusHistoryService: StatusHistoryService, razorpayService: RazorpayService, billingLedgerService: BillingLedgerService, pricingService: PricingService, cashfreeService: CashfreeService);
    private parseCashfreeDate;
    private parseCashfreeNumber;
    private mapVehicleType;
    verifyRc(dto: VerifyVehicleRcDto): Promise<any>;
    private handleSubscriptionVehicleChange;
    clearVehicleCache(businessId: string | Types.ObjectId, vehicleId?: string | Types.ObjectId): Promise<void>;
    private assertRegistrationNumberAvailable;
    createVehicle(createVehicleDto: CreateVehicleDto, req: any): Promise<any>;
    uploadVehiclesCsv(file: any, req: any): Promise<any>;
    getVehicleList(queryDto: VehicleListDto, req: any): Promise<any>;
    getAvailableVehicles(queryDto: GetAvailableVehiclesDto, req: any): Promise<any>;
    getVehicleById(vehicleId: string, req: any): Promise<any>;
    updateVehicle(vehicleId: string, updateVehicleDto: UpdateVehicleDto, req: any): Promise<any>;
    updateVehicleStatus(vehicleId: string, statusDto: UpdateVehicleStatusDto, req: any): Promise<any>;
    deleteVehicle(vehicleId: string, force: boolean, req: any): Promise<any>;
    getVehicleMonthlyStats(vehicleId: string, queryDto: any, req: any): Promise<any>;
    deactivateVehiclePermit(vehicleId: string, permitId: string, req: any): Promise<any>;
    activateVehiclePermit(vehicleId: string, permitId: string, req: any): Promise<any>;
    createPermit(createMultiplePermitsDto: any, req: any): Promise<any>;
    updatePermit(updateMultiplePermitsDto: any, req: any): Promise<any>;
    getVehiclePermits(vehicleId: string, req: any): Promise<any>;
}
