import { ConfigService } from "@nestjs/config";
import { Repository } from "typeorm";
import { ChatMessageRepository } from "../../chat/repositories/chat-message.repository";
import { ChatConversationRepository } from "../../chat/repositories/chat-conversation.repository";
import { ChatParticipantRepository } from "../../chat/repositories/chat-participant.repository";
import { SendMessageDto } from "../../chat/dto/send-message.dto";
import { ChatHistoryDto } from "../../chat/dto/chat-history.dto";
import { AuthRepository } from "../../auth/repositories/auth.repository";
import { BusinessVertical } from "../../business-verticals/entities/business-verticals.entity";
import { Department } from "../../department/entities/department.entity";
import { DriverFleetHistoryRepository } from "../../fleet-management/repositories/driver-fleet-history.repository";
import { FleetManagementRepository } from "../../fleet-management/repositories/fleet-management.repository";
import { RatingRepository } from "../../rating/repositories/rating.repository";
import { RoleRepository } from "../../role/repositories/role.repository";
import { TripIntermediateStopRepository } from "../../trip-intermediate-stops/repositories/trip-intermediate-stop.repository";
import { TripFleetAssignment } from "../../trips/entities/fleet-trip-management.entity";
import { Trip } from "../../trips/entities/trip.entity";
import { DeclinedTripRepository } from "../../trips/repositories/declined-trip.repository";
import { TripCancelRepository } from "../../trips/repositories/trip-cancel-repository";
import { TripFleetRepository } from "../../trips/repositories/trip-fleet-repository";
import { TripRepository } from "../../trips/repositories/trip.repository";
import { VehicleStatusService } from "../../vehicle-status/v1/vehicle-status.service";
import { VehicleHistoryQueryDto } from "../dto/drivers/driver-vehicle-history.dto";
import { FindAllDriverDto } from "../dto/drivers/find-all-drivers.dto";
import { FindAllTeamMemberDto } from "../dto/find-all-team-member.dto";
import { CreateTeamMemberDto } from "../dto/team-members/create-team-member.dto";
import { UnassignedDriversQueryDto } from "../dto/team-members/unassigned-driver.dto";
import { UpdateTeamMemberDto } from "../dto/team-members/update-team-member.dto";
import { Language } from "../entities/languages.entity";
import { TeamMember } from "../entities/team_member.entity";
import { AddressRepository } from "../repositories/address.repository";
import { IdProofRepository } from "../repositories/id-proof.repository";
import { LanguagesRepository } from "../repositories/languages.repository";
import { TeamMemberRepository } from "../repositories/team_member.repository";
import { AuthService } from "../../auth/v1/auth.service";
import { NotificationService } from "../../notification/v1/notification.service";
import { CustomerRepository } from "../../customers/repositories/customers.repository";
import { TripBasePricingRepository } from "../../trips/repositories/trip-base-price.repository";
import { ChatRoomRepository } from "../../chat/repositories/chat-room.repository";
import { TripTimelineRepository } from "../../trips/repositories/trip-timeline.repository";
import { TripsService } from "src/modules/trips/v1/trips.service";
import { TripAddOnsPricingRepository } from "src/modules/trips/repositories/trip-addons-pricing.repository";
export declare class TeamMemberService {
    private readonly teamMemberRepository;
    private readonly addressRepository;
    private readonly idProofRepository;
    private readonly authRepository;
    private readonly roleRepository;
    private readonly configService;
    private readonly tripFleetRepository;
    private readonly driverFleetHistoryRepository;
    private readonly declinedTripRepository;
    private readonly tripRepository;
    private readonly tripCancelRepository;
    private readonly ratingRepository;
    private readonly fleetManagementRepository;
    private readonly tripIntermediateStopRepository;
    private readonly vehicleStatusService;
    private readonly languageRepository;
    private readonly authService;
    private readonly notificationService;
    private readonly customerRepository;
    private readonly tripBasePricingRepository;
    private readonly chatMessageRepository;
    private readonly chatConversationRepository;
    private readonly chatParticipantRepository;
    private readonly chatRoomRepository;
    private readonly tripTimelineHistoryRepository;
    private readonly tripService;
    private readonly tripAddOnRepository;
    private readonly tripAddOnPricingRepository;
    private readonly tripFleetAssignmentRepository;
    private readonly tripEntityRepository;
    private readonly departmentRepo;
    private readonly businessVerticalRepo;
    private readonly teamMemberEntity;
    private readonly languageEntityRepository;
    constructor(teamMemberRepository: TeamMemberRepository, addressRepository: AddressRepository, idProofRepository: IdProofRepository, authRepository: AuthRepository, roleRepository: RoleRepository, configService: ConfigService, tripFleetRepository: TripFleetRepository, driverFleetHistoryRepository: DriverFleetHistoryRepository, declinedTripRepository: DeclinedTripRepository, tripRepository: TripRepository, tripCancelRepository: TripCancelRepository, ratingRepository: RatingRepository, fleetManagementRepository: FleetManagementRepository, tripIntermediateStopRepository: TripIntermediateStopRepository, vehicleStatusService: VehicleStatusService, languageRepository: LanguagesRepository, authService: AuthService, notificationService: NotificationService, customerRepository: CustomerRepository, tripBasePricingRepository: TripBasePricingRepository, chatMessageRepository: ChatMessageRepository, chatConversationRepository: ChatConversationRepository, chatParticipantRepository: ChatParticipantRepository, chatRoomRepository: ChatRoomRepository, tripTimelineHistoryRepository: TripTimelineRepository, tripService: TripsService, tripAddOnRepository: TripBasePricingRepository, tripAddOnPricingRepository: TripAddOnsPricingRepository, tripFleetAssignmentRepository: Repository<TripFleetAssignment>, tripEntityRepository: Repository<Trip>, departmentRepo: Repository<Department>, businessVerticalRepo: Repository<BusinessVertical>, teamMemberEntity: Repository<TeamMember>, languageEntityRepository: Repository<Language>);
    checkTeamMemberExist(email: string): Promise<any>;
    createTeamMember(createTeamMemberDto: CreateTeamMemberDto, profilePhoto?: Express.Multer.File, documentFiles?: Express.Multer.File[]): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    findAllTeamMembers(params: FindAllTeamMemberDto): Promise<{
        success: boolean;
        code: number;
        message: string;
        data: any;
    }>;
    findOneTeamMember(id: number): Promise<any>;
    updateTeamMember(id: number, updateTeamMemberDto: UpdateTeamMemberDto, profile_photo?: Express.Multer.File, document_files?: Express.Multer.File[]): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    remove(id: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    deleteIdProof(teamMemberId: number, idProofId: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    getReportingTeamMembersByRole(roleId: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    getDriversByRole(): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    getDispatchersByRole(): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    getDispatchersWiseDrivers(params: FindAllDriverDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    getUnassignedDrivers(query: UnassignedDriversQueryDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    getDriverAssignVehicle(driver_id: number, vehicleHistoryQueryDto: VehicleHistoryQueryDto): Promise<{
        success: boolean;
        code: number;
        message: string;
        data: any;
    }>;
    getDriverProfileDeatails(driverId: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    getDispatcherProfileDetails(dispatcherId: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    addDriverLicenceForDriver(teamMemberId: number, documentMetadata: {
        document_number: string;
        expiry_date?: string;
        document_status?: string;
    }, documentFile?: Express.Multer.File): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    private getAssignedTripsOverlapCondition;
    getDriverTrips(driverId: number, type?: "requests" | "upcoming" | "past", pagination?: {
        page: number;
        limit: number;
    }, pastTripType?: "completed" | "cancelled" | "all", fromDate?: string): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    getDispatcherTrips(dispatcherId: number, tripType?: "ongoing" | "upcoming" | "requested" | "past" | "active", limit?: number, skip?: number, pastTripType?: "completed" | "cancelled" | "all", sortKey?: string, sortOrder?: "ASC" | "DESC"): Promise<{
        success: boolean;
        code: number;
        message: string;
        data: any;
    }>;
    declineTrip(tripId: number, driverId: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    acceptTrip(tripId: number, driverId: number, fleetId: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    reachedAtStop(tripId: number, stopId: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    completeTrip(tripId: number, driverId: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    startTrip(tripId: number, driverId: number, otp: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    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;
    }>;
    getLanguagesDropdown(): Promise<{
        success: boolean;
        code: number;
        message: string;
        data: any;
    }>;
    getHomePageCounts(dispatcherId: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    sendMessageToDriver(dispatcherId: number, sendMessageDto: SendMessageDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    getDriverDispatcher(driverId: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    sendMessageToDispatcher(sendMessageDto: SendMessageDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    getChatRoom(data: {
        current_user_id: number;
        current_user_type: string;
        target_user_id: number;
        target_user_type: string;
        trip_id?: number;
    }): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    getChatHistory(chatHistoryDto: ChatHistoryDto): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    markMessagesAsRead(receiver_id: number, chat_room_id: number): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    getDispatcherChatContacts(dispatcherId: number, type: "driver" | "customer"): Promise<{
        success: boolean;
        code: number;
        message: string;
    }>;
    private sendCustomerNotification;
}
