import { ConfigService } from "@nestjs/config";
import { Repository } from "typeorm";
import { AddOnRepository } from "../../add-ons/repositories/add-ons.repository";
import { ClientCompanyContactRepository } from "../../client-company-contacts/repositories/client-company-contacts.repository";
import { ClientCompanyRepository } from "../../clients-companies/repositories/clients-companies.repository";
import { CustomerRepository } from "../../customers/repositories/customers.repository";
import { Escort } from "../../escorts/entities/escort.entity";
import { EscortRepository } from "../../escorts/repositories/escort.repository";
import { FleetManagementService } from "../../fleet-management/v1/fleet-management.service";
import { FleetManagementRepository } from "../../fleet-management/repositories/fleet-management.repository";
import { HospitalRepository } from "../../hospitals/repositories/hospital.repository";
import { NotificationService } from "../../notification/v1/notification.service";
import { TeamMember } from "../../team-member/entities/team_member.entity";
import { UpdateTripBabySeatDto } from "../dto/assign-baby-seat.dto";
import { CreateTripCancellationDto } from "../dto/create-trip-cancellation.dto";
import { CreateTripDto } from "../dto/create-trip.dto";
import { TripFilterDto } from "../dto/filter-trip.dto";
import { AssignFleetsToTripDto } from "../dto/fleet-assignment.dto";
import { PaginationDto } from "../dto/pagination.dto";
import { UpdateTripCancellationDto } from "../dto/update-trip-cancellation.dto";
import { UpdateTripDto } from "../dto/update-trip.dto";
import { TripFleetAssignment } from "../entities/fleet-trip-management.entity";
import { TripType } from "../entities/trip-type.entity";
import { Trip } from "../entities/trip.entity";
import { TripBabySeatRepository } from "../repositories/trip-baby-repository";
import { TripCancelRepository } from "../repositories/trip-cancel-repository";
import { TripFleetRepository } from "../repositories/trip-fleet-repository";
import { TripTypeRepository } from "../repositories/trip-type.repository";
import { TripRepository } from "../repositories/trip.repository";
import { UserLoginRepository } from "../../auth/repositories/user-login.repository";
import { CityRepository } from "../../city/repositories/city.repository";
import { FleetManagement } from "../../fleet-management/entities/fleet-management.entity";
import { VehicleStatusService } from "../../vehicle-status/v1/vehicle-status.service";
import { PricingPlanRepository } from "../../plans/repositories/plan.repository";
import { ClientCompanyContractRepository } from "../../client-contract/repositories/client-contarct.repository";
import { AuthService } from "../../auth/v1/auth.service";
import { TripAddOnsPricingDto } from "../dto/trip-addons-pricing.dto";
import { TripAddOnsPricingRepository } from "../repositories/trip-addons-pricing.repository";
import { TripServicePricingRepository } from "../repositories/trips-service-pricing.repository";
import { TripServicePricingDto } from "../dto/trip-service-pricing.dto";
import { TripBasePricingRepository } from "../repositories/trip-base-price.repository";
import { VehiclePricing } from "../../vehicle-pricing/entities/vehicle-pricing.entity";
import { MeetAndGreetPricing } from "../../meet-greet-pricing/entities/meet-greet-pricing.entity";
import { TripPricingDto } from "../dto/trip-base-pricing.dto";
import { CreateTripTrackingDto } from "../dto/trip-tracking.dto";
import { TripTrackingRepository } from "../repositories/trip-tracking.repository";
import { TripTracking } from "../entities/trip-tracking.entity";
import { CreateTripRequestByCustomerDto } from "../dto/create-trip-request-by-customer.dto";
import { TeamMemberRepository } from "../../team-member/repositories/team_member.repository";
import { RatingRepository } from "../../rating/repositories/rating.repository";
import { DriverFleetHistoryRepository } from "../../fleet-management/repositories/driver-fleet-history.repository";
import { TripLogsRepository } from "../repositories/trip-logs.repository";
import { InvoiceTripRepository } from "../../invoices/repositories/trip-invoice.repository";
import { TripTimelineRepository } from "../repositories/trip-timeline.repository";
import { UpdateTripTypeDto } from "../dto/trip-type.dto";
import { CompleteTripDto } from "../dto/complete-trip.dto";
import { StateRepository } from "src/modules/state/repositories/state.repository";
import { CountryRepository } from "src/modules/country/repositories/country.repository";
import { AddOnsPricing } from "src/modules/add-ons-pricing/entities/add-ons-pricing.entity";
export declare class TripsService {
    private readonly tripTypeRepository;
    private readonly tripRepository;
    private readonly clientCompanyRepository;
    private readonly clientCompanyContactRepository;
    private readonly customerRepository;
    private readonly hospitalRepository;
    private readonly configService;
    private readonly addOnRepository;
    private readonly tripFleetRepository;
    private readonly fleetManagementService;
    private readonly vehicleStatusService;
    private readonly tripBabySeatRepository;
    private readonly fleetManagementRepository;
    private readonly escortRepository;
    private readonly tripCancelRepository;
    private readonly notificationService;
    private readonly userLoginRepository;
    private readonly cityRepository;
    private readonly planRepository;
    private readonly clientContractRepository;
    private readonly authService;
    private readonly tripAddOnsPricingRepository;
    private readonly tripServicePricingRepository;
    private readonly tripBasePricingRepository;
    private readonly tripTrackingRepository;
    private readonly teamMemberRepository;
    private readonly ratingRepository;
    private readonly driverFleetHistoryRepository;
    private readonly tripLogsRepository;
    private readonly invoiceTripRepository;
    private readonly tripTimelineHistoryRepository;
    private readonly countryRepository;
    private readonly stateRepository;
    private readonly tripEntityRepository;
    private readonly fleetManagementEntityRepository;
    private readonly escortEntityRepository;
    private readonly teamMemberEntityRepository;
    private readonly vehiclePricingEntityRepository;
    private readonly meetAndGreetEntityRepository;
    private readonly tripFleetAssignmentRepository;
    private readonly addOnsPricingEntityRepository;
    private readonly logger;
    constructor(tripTypeRepository: TripTypeRepository, tripRepository: TripRepository, clientCompanyRepository: ClientCompanyRepository, clientCompanyContactRepository: ClientCompanyContactRepository, customerRepository: CustomerRepository, hospitalRepository: HospitalRepository, configService: ConfigService, addOnRepository: AddOnRepository, tripFleetRepository: TripFleetRepository, fleetManagementService: FleetManagementService, vehicleStatusService: VehicleStatusService, tripBabySeatRepository: TripBabySeatRepository, fleetManagementRepository: FleetManagementRepository, escortRepository: EscortRepository, tripCancelRepository: TripCancelRepository, notificationService: NotificationService, userLoginRepository: UserLoginRepository, cityRepository: CityRepository, planRepository: PricingPlanRepository, clientContractRepository: ClientCompanyContractRepository, authService: AuthService, tripAddOnsPricingRepository: TripAddOnsPricingRepository, tripServicePricingRepository: TripServicePricingRepository, tripBasePricingRepository: TripBasePricingRepository, tripTrackingRepository: TripTrackingRepository, teamMemberRepository: TeamMemberRepository, ratingRepository: RatingRepository, driverFleetHistoryRepository: DriverFleetHistoryRepository, tripLogsRepository: TripLogsRepository, invoiceTripRepository: InvoiceTripRepository, tripTimelineHistoryRepository: TripTimelineRepository, countryRepository: CountryRepository, stateRepository: StateRepository, tripEntityRepository: Repository<Trip>, fleetManagementEntityRepository: Repository<FleetManagement>, escortEntityRepository: Repository<Escort>, teamMemberEntityRepository: Repository<TeamMember>, vehiclePricingEntityRepository: Repository<VehiclePricing>, meetAndGreetEntityRepository: Repository<MeetAndGreetPricing>, tripFleetAssignmentRepository: Repository<TripFleetAssignment>, addOnsPricingEntityRepository: Repository<AddOnsPricing>);
    create(createTripDto: CreateTripDto, tripSupportDocument: Express.Multer.File): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    findAll(token: any, filterTripDto: TripFilterDto, excludeActiveStatus?: boolean, isCustomer?: boolean, deviceType?: string): Promise<{
        success: boolean;
        code: number;
        message: string;
        data: any;
    }>;
    findOne(id: number, isCustomer: boolean): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    update(id: number, updateTripDto: UpdateTripDto, tripSupportDocument?: Express.Multer.File, userId?: number, teamMemberId?: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    validateDriverAndFleetAvailability(tripId: number, startTime: any, endTime: any): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    private getChangedTripFields;
    sendTripCreateNotification(tripId: number, userId: number): Promise<void>;
    private sendCustomerNotification;
    sendNewTripRequestNotification(tripId: number): Promise<void>;
    getStepWisePayload(step: number, dto: UpdateTripDto): Promise<any>;
    isTripTypeExist(type: any): Promise<boolean>;
    createTripType(type: any): Promise<void>;
    getAllTripTypes(): Promise<{
        success: boolean;
        code: number;
        message: string;
        data: any;
    }>;
    assignFleetsToTrip(trip_id: any, assignFleetsTripDto: AssignFleetsToTripDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    updateTripBabySeats(updateDto: UpdateTripBabySeatDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    getAvailableDriversForTrip(tripId: number, paginationDto: PaginationDto): Promise<{
        success: boolean;
        code: number;
        message: string;
        data: any;
    }>;
    createTripCancellation(createTripCancellationDto: CreateTripCancellationDto, type: string): Promise<{
        success: boolean;
        code: number;
        message: string;
        data: any;
    }>;
    getTripCancellation(tripId: number): Promise<{
        success: boolean;
        code: number;
        message: string;
        data: any;
    }>;
    updateTripCancellation(canceledById: number, tripId: number, updateTripCancellationDto: UpdateTripCancellationDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    getSelectedAddOnsForTrip(trip_id: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    getChargeTypeForTrips(tripId: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    private getDriverUserIdsAndTripDetails;
    tripsAddOnsPricing(dto: TripAddOnsPricingDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    tripsServicePricing(dto: TripServicePricingDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    getTripBasePrice(tripId: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    calculateTripPrice(tripId: number, useActualTime?: boolean): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    completePastTrips(): Promise<{
        success: boolean;
        code: number;
        message: string;
        data: any;
    }>;
    completeTrip(tripId: number, dto: CompleteTripDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    calculateTripPricing(): Promise<{
        success: boolean;
        code: number;
        message: string;
        data: any;
    }>;
    updateTripBasePricing(tripPricingDto: TripPricingDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    saveTripLocation(createTripTrackingDto: CreateTripTrackingDto): Promise<TripTracking | {
        success: boolean;
        code: number;
        message: string;
    }>;
    getLatestTripLocation(tripId: any): Promise<number | TripTracking | TripTracking[] | import("../../../common/interfaces/pagination-result.interface").PaginatedResult<TripTracking>>;
    updateTripStatusToPickup(trip_id: any, token: any, estimated_time?: string): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    createTripRequestByCustomer(customerTripDto: CreateTripRequestByCustomerDto, tripDocument?: Express.Multer.File): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    getTripTimeZone(): Promise<{
        success: boolean;
        code: number;
        message: string;
        data: any;
    }>;
    getCancelledTripsCount(driverId: number, start_timestamp?: string, end_timestamp?: string): Promise<{
        success: boolean;
        code: number;
        message: string;
        data: any;
    }>;
    getRating(driverId: number, start_timestamp?: string, end_timestamp?: string): Promise<{
        success: boolean;
        code: number;
        message: string;
        data: any;
    }>;
    getTripStatusHistory(tripId: number): Promise<{
        success: boolean;
        code: number;
        message: string;
        data: any;
    }>;
    updateTripType(id: any, dto: UpdateTripTypeDto): Promise<TripType | {
        success: boolean;
        code: number;
        message: string;
    }>;
    fixMissingTripLocations(): Promise<void>;
    findFrequentlyUsedDropoffLocations(customerId: number, currentPlaceId?: string): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    createRoundTrip(tripId: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    changeStatusToDraft(tripId: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    private sendTripNotificationToCustomer;
}
