import { Model } from 'mongoose';
import { TripDocument } from '../trips/schemas/trip.schema';
import { Punch, PunchDocument } from '../punches/schemas/punch.schema';
import { User, UserDocument } from '../users/schemas/user.schema';
export declare class ExportsService {
    private readonly tripModel;
    private readonly punchModel;
    private readonly userModel;
    constructor(tripModel: Model<TripDocument>, punchModel: Model<PunchDocument>, userModel: Model<UserDocument>);
    exportTripsJson(filters: {
        from?: string;
        to?: string;
        userId?: string;
    }): Promise<{
        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;
        }>)[];
        _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;
    }[]>;
    exportTripsExcel(filters: {
        from?: string;
        to?: string;
        userId?: string;
    }): Promise<import("exceljs").Buffer>;
    streamTripsPdf(res: import('express').Response, filters: {
        from?: string;
        to?: string;
        userId?: string;
    }): Promise<void>;
}
