import { Model } from 'mongoose';
import { RedisService } from '../redis/redis.service';
import { TripsService } from '../trips/trips.service';
import { User, UserDocument } from '../users/schemas/user.schema';
import { GpsPointDocument } from '../gps/schemas/gps-point.schema';
import { TripDocument } from '../trips/schemas/trip.schema';
import { Punch, PunchDocument } from '../punches/schemas/punch.schema';
import { GpsStop, GpsStopDocument } from '../gps/schemas/gps-stop.schema';
import { UserStatus } from '../common/constants/enums';
import { TrackingCoverageService } from '../tracking/tracking-coverage.service';
export declare class AdminService {
    private readonly userModel;
    private readonly gpsModel;
    private readonly tripModel;
    private readonly punchModel;
    private readonly stopModel;
    private readonly redis;
    private readonly trips;
    private readonly trackingCoverage;
    constructor(userModel: Model<UserDocument>, gpsModel: Model<GpsPointDocument>, tripModel: Model<TripDocument>, punchModel: Model<PunchDocument>, stopModel: Model<GpsStopDocument>, redis: RedisService, trips: TripsService, trackingCoverage: TrackingCoverageService);
    liveEmployeeMap(): Promise<{
        id: string;
        liveLocation: Record<string, unknown> | null;
        _id: import("mongoose").Types.ObjectId;
        $locals: Record<string, unknown>;
        $op: "save" | "validate" | "remove" | null;
        $where: Record<string, unknown>;
        baseModelName?: string;
        collection: import("mongoose").Collection;
        db: import("mongoose").Connection;
        errors?: import("mongoose").Error.ValidationError;
        isNew: boolean;
        schema: import("mongoose").Schema;
        uid: string;
        email: string;
        passwordHash: string;
        fullName: string;
        name?: string;
        employeeCode: string;
        mobileNumber?: string;
        sittingLocation?: string;
        reportingManagerId?: string;
        role: import("../common/constants/enums").UserRole;
        deviceId?: string;
        profileImage?: string;
        status: UserStatus;
        fcmToken?: string;
        isRooted: boolean;
        presence: import("../common/constants/enums").EmployeePresence;
        lastSeenAt?: Date;
        __v: number;
    }[]>;
    activeTrips(): Promise<{
        lastGpsPoint: {
            id: string;
            _id: import("mongoose").Types.ObjectId;
            $locals: Record<string, unknown>;
            $op: "save" | "validate" | "remove" | null;
            $where: Record<string, unknown>;
            baseModelName?: string;
            collection: import("mongoose").Collection;
            db: import("mongoose").Connection;
            errors?: import("mongoose").Error.ValidationError;
            isNew: boolean;
            schema: import("mongoose").Schema;
            tripId?: string;
            userId: string;
            clientPointId?: string;
            latitude: number;
            longitude: number;
            accuracy?: number;
            speed?: number;
            bearing?: number;
            batteryLevel?: number;
            timestamp: Date;
            isSmoothed: boolean;
            legId?: string;
            sessionId?: string;
            source?: string;
            __v: number;
        } | null;
        user: {
            uid: string;
            fullName: string;
            employeeCode: string;
            presence: import("../common/constants/enums").EmployeePresence;
        } | null;
        id: string;
        tripId: string;
        userId: string;
        requestDate: Date;
        city?: string;
        fromLocation?: string;
        toLocation?: string;
        originLat?: number;
        originLng?: number;
        clientName?: string;
        destinationLat?: number;
        destinationLng?: number;
        googlePlaceId?: string;
        plannedDistance?: number;
        vehicleType?: import("../common/constants/enums").VehicleType;
        fuelType?: import("../common/constants/enums").FuelType;
        purpose?: string;
        status: import("../common/constants/enums").TripStatus;
        totalDistance: number;
        travelDuration: number;
        idleTime: number;
        meetingDuration: number;
        productivityScore?: number;
        tripEfficiency?: number;
        startedAt?: Date;
        arrivedAt?: Date;
        completedAt?: Date;
        tripLegs?: Record<string, unknown>[];
        currentLegIndex?: number;
        _id: import("mongoose").Types.ObjectId;
        __v: number;
    }[]>;
    routeReplay(tripId: string, compress?: boolean): Promise<{
        trip: {
            id: string;
            user: (import("mongoose").Document<unknown, {}, User, {}, import("mongoose").DefaultSchemaOptions> & User & {
                _id: import("mongoose").Types.ObjectId;
            } & {
                __v: number;
            } & {
                id: string;
            } & Required<{
                _id: import("mongoose").Types.ObjectId;
            }>) | null;
            punches: (import("mongoose").Document<unknown, {}, Punch, {}, import("mongoose").DefaultSchemaOptions> & Punch & {
                _id: import("mongoose").Types.ObjectId;
            } & {
                __v: number;
            } & {
                id: string;
            } & Required<{
                _id: import("mongoose").Types.ObjectId;
            }>)[];
            stops: (import("mongoose").Document<unknown, {}, GpsStop, {}, import("mongoose").DefaultSchemaOptions> & GpsStop & {
                _id: import("mongoose").Types.ObjectId;
            } & {
                __v: number;
            } & {
                id: string;
            } & Required<{
                _id: import("mongoose").Types.ObjectId;
            }>)[];
            trackingCoverageSummary: {
                expectedDurationMinutes: number;
                trackedDurationMinutes: number;
                gapDurationMinutes: number;
                coveragePercent: number;
            } | null;
            _id: import("mongoose").Types.ObjectId;
            $locals: Record<string, unknown>;
            $op: "save" | "validate" | "remove" | null;
            $where: Record<string, unknown>;
            baseModelName?: string;
            collection: import("mongoose").Collection;
            db: import("mongoose").Connection;
            errors?: import("mongoose").Error.ValidationError;
            isNew: boolean;
            schema: import("mongoose").Schema;
            tripId: string;
            userId: string;
            requestDate: Date;
            city?: string;
            fromLocation?: string;
            toLocation?: string;
            originLat?: number;
            originLng?: number;
            clientName?: string;
            destinationLat?: number;
            destinationLng?: number;
            googlePlaceId?: string;
            plannedDistance?: number;
            vehicleType?: import("../common/constants/enums").VehicleType;
            fuelType?: import("../common/constants/enums").FuelType;
            purpose?: string;
            status: import("../common/constants/enums").TripStatus;
            totalDistance: number;
            travelDuration: number;
            idleTime: number;
            meetingDuration: number;
            productivityScore?: number;
            tripEfficiency?: number;
            startedAt?: Date;
            arrivedAt?: Date;
            completedAt?: Date;
            tripLegs?: Record<string, unknown>[];
            currentLegIndex?: number;
            __v: number;
        };
        trackingCoverage: {
            requestId: string;
            tripId: string;
            legs: import("../tracking/schemas/tracking-coverage-snapshot.schema").TrackingCoverageLegSnapshot[];
            summary: {
                expectedDurationMinutes: number;
                trackedDurationMinutes: number;
                gapDurationMinutes: number;
                coveragePercent: number;
            };
        } | null;
        route: import("../common/utils/geo.util").LatLng[];
        pointCount: number;
    } | null>;
    filteredEmployees(filters: {
        role?: string;
        status?: string;
        search?: string;
        managerId?: string;
    }): Promise<{
        id: string;
        uid: string;
        fullName: string;
        employeeCode: string;
        role: import("../common/constants/enums").UserRole;
        status: UserStatus;
        presence: import("../common/constants/enums").EmployeePresence;
        sittingLocation: string | undefined;
        reportingManager: (import("mongoose").Document<unknown, {}, User, {}, import("mongoose").DefaultSchemaOptions> & User & {
            _id: import("mongoose").Types.ObjectId;
        } & {
            __v: number;
        } & {
            id: string;
        } & Required<{
            _id: import("mongoose").Types.ObjectId;
        }>) | null | undefined;
    }[]>;
}
