import { EventEmitter2 } from '@nestjs/event-emitter';
import { Model } from 'mongoose';
import type { JwtUserPayload } from '../auth/jwt.types';
import { TripsService } from '../trips/trips.service';
import { UsersService } from '../users/users.service';
import { TrackingEventsBatchDto } from './dto/tracking-event.dto';
import { TrackingEvent, TrackingEventDocument } from './schemas/tracking-event.schema';
export declare class TrackingEventsService {
    private readonly eventModel;
    private readonly trips;
    private readonly users;
    private readonly events;
    constructor(eventModel: Model<TrackingEventDocument>, trips: TripsService, users: UsersService, events: EventEmitter2);
    private parseEventType;
    private assertCanEmit;
    private buildDedupeKey;
    ingestBatch(requestId: string, actor: JwtUserPayload, dto: TrackingEventsBatchDto): Promise<{
        inserted: number;
        requestId: string;
    }>;
    listForTrip(tripDbId: string, from?: Date, to?: Date): Promise<(import("mongoose").Document<unknown, {}, TrackingEvent, {}, import("mongoose").DefaultSchemaOptions> & TrackingEvent & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    } & {
        id: string;
    } & Required<{
        _id: import("mongoose").Types.ObjectId;
    }>)[]>;
}
