/** * Timeline Renderer - Visual timeline showing Frame evolution * * Renders Frames for a ticket/branch as a timeline with: * - Module scope evolution (what modules were touched when) * - Blocker introduction and resolution tracking * - Status updates over time */ import type { Frame } from "./types.js"; /** * Timeline entry representing a single Frame in the timeline */ export interface TimelineEntry { frame: Frame; modulesAdded: string[]; modulesRemoved: string[]; blockersAdded: string[]; blockersRemoved: string[]; } /** * Timeline filter options */ export interface TimelineOptions { since?: Date; until?: Date; format?: "text" | "json" | "html"; } /** * Build timeline from frames (chronologically ordered) */ export declare function buildTimeline(frames: Frame[]): TimelineEntry[]; /** * Filter timeline by date range */ export declare function filterTimeline(timeline: TimelineEntry[], options: TimelineOptions): TimelineEntry[]; /** * Render timeline as text */ export declare function renderTimelineText(timeline: TimelineEntry[], title: string): string; /** * Render module scope evolution graph */ export declare function renderModuleScopeEvolution(timeline: TimelineEntry[]): string; /** * Render blocker tracking summary */ export declare function renderBlockerTracking(timeline: TimelineEntry[]): string; /** * Render timeline as JSON */ export declare function renderTimelineJSON(timeline: TimelineEntry[]): string; /** * Render timeline as HTML (basic implementation) */ export declare function renderTimelineHTML(timeline: TimelineEntry[], title: string): string;