/** Operation-sequence and recorded-time projections for the trajectory overview. */ import type { TrajectoryTurnModel } from './layout.ts'; import type { TrajectoryCellKind } from './trajectory-record.ts'; /** Horizontal projection used by the trajectory timeline. */ export type TrajectoryTimelineMode = 'sequence' | 'duration' | 'time' | 'actual'; /** Inclusive selection in the active timeline projection's domain. */ export interface TrajectoryTimeRange { start: number; end: number; } /** One ledger record projected into the active timeline domain. */ export interface TrajectoryTimelineSpan extends TrajectoryTimeRange { index: number; isError: boolean; kind: TrajectoryCellKind; label: string; lane: number; } /** One turn boundary in the active timeline domain. */ export interface TrajectoryTimelineTurnBoundary { turn: number; time: number; } /** Full-domain model used by the overview. */ export interface TrajectoryTimelineModel extends TrajectoryTimeRange { spans: readonly TrajectoryTimelineSpan[]; turnBoundaries: readonly TrajectoryTimelineTurnBoundary[]; } /** * Format a timeline duration as an integer-millisecond label. * @param milliseconds - Non-negative duration in milliseconds. * @returns Millisecond label with thousands separators. */ export declare function formatTimelineOffset(milliseconds: number): string; /** * Project every visible record into a stable three-lane timeline. * @param turns - Unfiltered trajectory layout. * @param mode - Independent equal/recorded duration and compressed/complete time projection. * @returns Timeline model, or `null` when no record is visible. */ export declare function deriveTrajectoryTimeline(turns: readonly TrajectoryTurnModel[], mode?: TrajectoryTimelineMode): TrajectoryTimelineModel | null; /** * Identify records active at any point inside an inclusive selected interval. * @param turns - Unfiltered trajectory layout. * @param range - Selected interval in the active projection. * @param mode - Independent equal/recorded duration and compressed/complete time projection. * @returns Record indexes inside the focus interval. */ export declare function trajectoryTimelineFocusIndexes(turns: readonly TrajectoryTurnModel[], range: TrajectoryTimeRange, mode?: TrajectoryTimelineMode): ReadonlySet; //# sourceMappingURL=timeline.d.ts.map