import { Repository } from "typeorm";
import { UserLoginRepository } from "../../auth/repositories/user-login.repository";
import { TripRepository } from "../../trips/repositories/trip.repository";
import { VehicleManufacturerRepository } from "../../vehicle-manufacturer/repositories/vehicle-manufacturer.repository";
import { VehicleModelRepository } from "../../vehicle-model/repositories/vehicle-model.repository";
import { CreateFleetManagementDto } from "../dto/create-fleet-management.dto";
import { FindAllFleetManagementDto } from "../dto/find-all-fleet-management.dto";
import { FleetTripFilterDto } from "../dto/fleet-trip-filter.dto";
import { UpdateFleetManagementDto } from "../dto/update-fleet-management.dto";
import { FleetManagement } from "../entities/fleet-management.entity";
import { DriverFleetHistoryRepository } from "../repositories/driver-fleet-history.repository";
import { FleetManagementRepository } from "../repositories/fleet-management.repository";
import { VehicleStatusService } from "../../vehicle-status/v1/vehicle-status.service";
import { TripFleetAssignment } from "../../trips/entities/fleet-trip-management.entity";
export declare class FleetManagementService {
    private readonly fleetManagementRepository;
    private vehicleModelRepository;
    private readonly vehicleManufacturerRepository;
    private readonly driverFleetHistoryRepository;
    private readonly loginRepository;
    private readonly tripRepository;
    private readonly userLoginRepository;
    private readonly vehicleStatusService;
    private readonly fleetEntityRepository;
    private readonly tripFleetAssignmentRepository;
    constructor(fleetManagementRepository: FleetManagementRepository, vehicleModelRepository: VehicleModelRepository, vehicleManufacturerRepository: VehicleManufacturerRepository, driverFleetHistoryRepository: DriverFleetHistoryRepository, loginRepository: UserLoginRepository, tripRepository: TripRepository, userLoginRepository: UserLoginRepository, vehicleStatusService: VehicleStatusService, fleetEntityRepository: Repository<FleetManagement>, tripFleetAssignmentRepository: Repository<TripFleetAssignment>);
    checkAddOnExistsVehicle(registration_number: string, vin_number: string, excludeId?: number): Promise<boolean>;
    create(createFleetManagementDto: CreateFleetManagementDto, registrationFile?: Express.Multer.File): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    findAll(token: any, query: FindAllFleetManagementDto): Promise<{
        success: boolean;
        code: number;
        message: string;
        data: any;
    }>;
    findOne(id: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    update(id: number, updateFleetManagementDto: UpdateFleetManagementDto, registrationFile?: Express.Multer.File): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    remove(id: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    getRegisterNumberDropdown(token: any): Promise<{
        success: boolean;
        code: number;
        message: string;
        data: any;
    }>;
    addRegistrationDocument(id: number, registrationFile?: Express.Multer.File): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    assignFleetByDriver(id: number, driverId: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    getAllVehiclesForTripAssignment(tripId: number, fleetTripFilterDto: FleetTripFilterDto): Promise<{
        success: boolean;
        code: number;
        message: string;
        data: any;
    }>;
    checkFleetAvailability(payload: {
        fleet_id: number;
        trip_id: number;
    }): Promise<{
        success: boolean;
        code: number;
        message: string;
        data: any;
    }>;
}
