import { HydratedDocument } from 'mongoose';
export type TrackingCoverageSnapshotDocument = HydratedDocument<TrackingCoverageSnapshot>;
export declare class TrackingCoverageGap {
    from: Date;
    to: Date;
    durationMinutes: number;
    reason: string;
    suspectedCause?: string;
}
export declare class TrackingCoverageLegSnapshot {
    legId: string;
    legNumber: number;
    fromLocation?: string;
    toLocation?: string;
    departureAt?: Date;
    arrivalAt?: Date;
    expectedDurationMinutes: number;
    trackedDurationMinutes: number;
    gapDurationMinutes: number;
    coveragePercent: number;
    pointCount: number;
    gaps: TrackingCoverageGap[];
}
export declare class TrackingCoverageSnapshot {
    requestId: string;
    tripDbId: string;
    legs: TrackingCoverageLegSnapshot[];
    summary: {
        expectedDurationMinutes: number;
        trackedDurationMinutes: number;
        gapDurationMinutes: number;
        coveragePercent: number;
    };
    computedAt: Date;
}
export declare const TrackingCoverageGapSchema: import("mongoose").Schema<TrackingCoverageGap, import("mongoose").Model<TrackingCoverageGap, any, any, any, any, any, TrackingCoverageGap>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, TrackingCoverageGap, import("mongoose").Document<unknown, {}, TrackingCoverageGap, {
    id: string;
}, import("mongoose").DefaultSchemaOptions> & Omit<TrackingCoverageGap & {
    _id: import("mongoose").Types.ObjectId;
} & {
    __v: number;
}, "id"> & {
    id: string;
}, {
    from?: import("mongoose").SchemaDefinitionProperty<Date, TrackingCoverageGap, import("mongoose").Document<unknown, {}, TrackingCoverageGap, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<TrackingCoverageGap & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    to?: import("mongoose").SchemaDefinitionProperty<Date, TrackingCoverageGap, import("mongoose").Document<unknown, {}, TrackingCoverageGap, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<TrackingCoverageGap & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    durationMinutes?: import("mongoose").SchemaDefinitionProperty<number, TrackingCoverageGap, import("mongoose").Document<unknown, {}, TrackingCoverageGap, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<TrackingCoverageGap & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    reason?: import("mongoose").SchemaDefinitionProperty<string, TrackingCoverageGap, import("mongoose").Document<unknown, {}, TrackingCoverageGap, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<TrackingCoverageGap & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    suspectedCause?: import("mongoose").SchemaDefinitionProperty<string | undefined, TrackingCoverageGap, import("mongoose").Document<unknown, {}, TrackingCoverageGap, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<TrackingCoverageGap & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
}, TrackingCoverageGap>;
export declare const TrackingCoverageLegSnapshotSchema: import("mongoose").Schema<TrackingCoverageLegSnapshot, import("mongoose").Model<TrackingCoverageLegSnapshot, any, any, any, any, any, TrackingCoverageLegSnapshot>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, TrackingCoverageLegSnapshot, import("mongoose").Document<unknown, {}, TrackingCoverageLegSnapshot, {
    id: string;
}, import("mongoose").DefaultSchemaOptions> & Omit<TrackingCoverageLegSnapshot & {
    _id: import("mongoose").Types.ObjectId;
} & {
    __v: number;
}, "id"> & {
    id: string;
}, {
    legId?: import("mongoose").SchemaDefinitionProperty<string, TrackingCoverageLegSnapshot, import("mongoose").Document<unknown, {}, TrackingCoverageLegSnapshot, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<TrackingCoverageLegSnapshot & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    legNumber?: import("mongoose").SchemaDefinitionProperty<number, TrackingCoverageLegSnapshot, import("mongoose").Document<unknown, {}, TrackingCoverageLegSnapshot, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<TrackingCoverageLegSnapshot & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    fromLocation?: import("mongoose").SchemaDefinitionProperty<string | undefined, TrackingCoverageLegSnapshot, import("mongoose").Document<unknown, {}, TrackingCoverageLegSnapshot, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<TrackingCoverageLegSnapshot & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    toLocation?: import("mongoose").SchemaDefinitionProperty<string | undefined, TrackingCoverageLegSnapshot, import("mongoose").Document<unknown, {}, TrackingCoverageLegSnapshot, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<TrackingCoverageLegSnapshot & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    departureAt?: import("mongoose").SchemaDefinitionProperty<Date | undefined, TrackingCoverageLegSnapshot, import("mongoose").Document<unknown, {}, TrackingCoverageLegSnapshot, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<TrackingCoverageLegSnapshot & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    arrivalAt?: import("mongoose").SchemaDefinitionProperty<Date | undefined, TrackingCoverageLegSnapshot, import("mongoose").Document<unknown, {}, TrackingCoverageLegSnapshot, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<TrackingCoverageLegSnapshot & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    expectedDurationMinutes?: import("mongoose").SchemaDefinitionProperty<number, TrackingCoverageLegSnapshot, import("mongoose").Document<unknown, {}, TrackingCoverageLegSnapshot, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<TrackingCoverageLegSnapshot & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    trackedDurationMinutes?: import("mongoose").SchemaDefinitionProperty<number, TrackingCoverageLegSnapshot, import("mongoose").Document<unknown, {}, TrackingCoverageLegSnapshot, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<TrackingCoverageLegSnapshot & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    gapDurationMinutes?: import("mongoose").SchemaDefinitionProperty<number, TrackingCoverageLegSnapshot, import("mongoose").Document<unknown, {}, TrackingCoverageLegSnapshot, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<TrackingCoverageLegSnapshot & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    coveragePercent?: import("mongoose").SchemaDefinitionProperty<number, TrackingCoverageLegSnapshot, import("mongoose").Document<unknown, {}, TrackingCoverageLegSnapshot, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<TrackingCoverageLegSnapshot & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    pointCount?: import("mongoose").SchemaDefinitionProperty<number, TrackingCoverageLegSnapshot, import("mongoose").Document<unknown, {}, TrackingCoverageLegSnapshot, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<TrackingCoverageLegSnapshot & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    gaps?: import("mongoose").SchemaDefinitionProperty<TrackingCoverageGap[], TrackingCoverageLegSnapshot, import("mongoose").Document<unknown, {}, TrackingCoverageLegSnapshot, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<TrackingCoverageLegSnapshot & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
}, TrackingCoverageLegSnapshot>;
export declare const TrackingCoverageSnapshotSchema: import("mongoose").Schema<TrackingCoverageSnapshot, import("mongoose").Model<TrackingCoverageSnapshot, any, any, any, any, any, TrackingCoverageSnapshot>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, TrackingCoverageSnapshot, import("mongoose").Document<unknown, {}, TrackingCoverageSnapshot, {
    id: string;
}, import("mongoose").DefaultSchemaOptions> & Omit<TrackingCoverageSnapshot & {
    _id: import("mongoose").Types.ObjectId;
} & {
    __v: number;
}, "id"> & {
    id: string;
}, {
    requestId?: import("mongoose").SchemaDefinitionProperty<string, TrackingCoverageSnapshot, import("mongoose").Document<unknown, {}, TrackingCoverageSnapshot, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<TrackingCoverageSnapshot & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    tripDbId?: import("mongoose").SchemaDefinitionProperty<string, TrackingCoverageSnapshot, import("mongoose").Document<unknown, {}, TrackingCoverageSnapshot, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<TrackingCoverageSnapshot & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    legs?: import("mongoose").SchemaDefinitionProperty<TrackingCoverageLegSnapshot[], TrackingCoverageSnapshot, import("mongoose").Document<unknown, {}, TrackingCoverageSnapshot, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<TrackingCoverageSnapshot & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    summary?: import("mongoose").SchemaDefinitionProperty<{
        expectedDurationMinutes: number;
        trackedDurationMinutes: number;
        gapDurationMinutes: number;
        coveragePercent: number;
    }, TrackingCoverageSnapshot, import("mongoose").Document<unknown, {}, TrackingCoverageSnapshot, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<TrackingCoverageSnapshot & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
    computedAt?: import("mongoose").SchemaDefinitionProperty<Date, TrackingCoverageSnapshot, import("mongoose").Document<unknown, {}, TrackingCoverageSnapshot, {
        id: string;
    }, import("mongoose").DefaultSchemaOptions> & Omit<TrackingCoverageSnapshot & {
        _id: import("mongoose").Types.ObjectId;
    } & {
        __v: number;
    }, "id"> & {
        id: string;
    }> | undefined;
}, TrackingCoverageSnapshot>;
