import { HydratedDocument } from 'mongoose';
import { TrackingEventType } from '../../common/constants/enums';
export type TrackingEventDocument = HydratedDocument<TrackingEvent>;
export declare class TrackingEvent {
    requestId: string;
    tripDbId: string;
    legId?: string;
    sessionId?: string;
    type: TrackingEventType;
    timestamp: Date;
    metadata?: {
        lastPointAt?: string;
        reason?: string;
        platform?: string;
    };
    dedupeKey: string;
}
export declare const TrackingEventSchema: import("mongoose").Schema<TrackingEvent, import("mongoose").Model<TrackingEvent, any, any, any, any, any, TrackingEvent>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, TrackingEvent, import("mongoose").Document<unknown, {}, TrackingEvent, {
    id: string;
}, import("mongoose").DefaultSchemaOptions> & Omit<TrackingEvent & {
    _id: import("mongoose").Types.ObjectId;
} & {
    __v: number;
}, "id"> & {
    id: string;
}, {
    requestId?: import("mongoose").SchemaDefinitionProperty<string, TrackingEvent, import("mongoose").Document<unknown, {}, TrackingEvent, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<TrackingEvent & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    tripDbId?: import("mongoose").SchemaDefinitionProperty<string, TrackingEvent, import("mongoose").Document<unknown, {}, TrackingEvent, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<TrackingEvent & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    legId?: import("mongoose").SchemaDefinitionProperty<string | undefined, TrackingEvent, import("mongoose").Document<unknown, {}, TrackingEvent, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<TrackingEvent & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    sessionId?: import("mongoose").SchemaDefinitionProperty<string | undefined, TrackingEvent, import("mongoose").Document<unknown, {}, TrackingEvent, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<TrackingEvent & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    type?: import("mongoose").SchemaDefinitionProperty<TrackingEventType, TrackingEvent, import("mongoose").Document<unknown, {}, TrackingEvent, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<TrackingEvent & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    timestamp?: import("mongoose").SchemaDefinitionProperty<Date, TrackingEvent, import("mongoose").Document<unknown, {}, TrackingEvent, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<TrackingEvent & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    metadata?: import("mongoose").SchemaDefinitionProperty<{
        lastPointAt?: string;
        reason?: string;
        platform?: string;
    } | undefined, TrackingEvent, import("mongoose").Document<unknown, {}, TrackingEvent, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<TrackingEvent & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    dedupeKey?: import("mongoose").SchemaDefinitionProperty<string, TrackingEvent, import("mongoose").Document<unknown, {}, TrackingEvent, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<TrackingEvent & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
}, TrackingEvent>;
