export declare class Trip { id: number; tripGuid: string; imei: string; startDate: Date; endDate: Date | null; distance: number; startLat: number; startLon: number; endLat: number | null; endLon: number | null; createdAt: Date; startAddress: string; endAddress: string | null; positionStart: string; positionEnd: string | null; tripCompletionStatusId: number; clientId: number; duration: number; tripType: number; startMessageId: string; endMessageId: string | null; startSendTimeMessage: Date | null; endSendTimeMessage: Date | null; deleted: boolean | null; startOdometer: number | null; endOdometer: number | null; startPositionId: number | null; endPositionId: number | null; /** * Why this activity was created by the trip generator rather than by the device's own * data — 'stop-tail-silence' or 'abandoned-mid-motion' (see trips/docs/force-stop.md). * NULL for every ordinary activity, which is all of them today. * * Without it a force-created stop is indistinguishable from a real one after the fact: * the reason is published to SNS but nothing persists it, so "which stops did we * force?" can only be answered from logs, and a stop can never be reclassified. */ forceReason: string | null; /** * Trip summary fields (see "Engineering Design — Trip Summary Fields"). * Two producers own disjoint column sets — the trip generator writes the motion * fields (maxSpeed..polyline) incrementally on every batch update, an async * enrichment consumer writes the context fields (alertCount..endedOffPlace) a few * minutes after completion — so neither may ever write the other's columns. * summaryVersion is the enrichment LOGIC version (bumped on definition changes, * 0 = never enriched), not a per-write counter; summaryAt is the last enrichment * write. Speeds are km/h. The *Ids columns are comma-delimited sets with leading * and trailing delimiters, e.g. ',1,39,'. endedOffPlace is tri-state: NULL = not * yet enriched, 0/1 = end coordinate inside/outside every saved place. */ summaryVersion: number; summaryAt: Date | null; maxSpeed: number | null; avgSpeed: number | null; idleSec: number | null; polyline: string | null; alertCount: number | null; alertTypeIds: string | null; issueCount: number | null; issueTypeIds: string | null; speedingCount: number | null; maxOverKph: number | null; placeIds: string | null; endedOffPlace: boolean | null; }