import { type GoalFlightEventRecord } from "../core/goal-bound.ts"; export interface CareerCoverage { readonly files: number; readonly included: number; readonly unavailable: number; readonly truncated: boolean; } export interface SortieCareer { readonly scope: "retained-project-goals"; readonly since: string | null; readonly coverage: CareerCoverage; readonly goals: number; readonly completed: number; readonly interrupted: number; readonly external: number; readonly decision: number; readonly active: number; readonly telemetryCovered: number; readonly firstPass: { readonly count: number; readonly eligible: number; }; readonly recoveries: number; readonly tokens: { readonly sum: number; readonly covered: number; }; readonly models: readonly { readonly model: string; readonly tokens: number; }[]; readonly modelCovered: number; readonly workerTime: { readonly sum: number; readonly covered: number; }; readonly goalWall: { readonly sum: number; readonly covered: number; }; readonly overlap: { readonly worker: number; readonly wall: number; readonly covered: number; readonly ratio: number | null; }; readonly titles: readonly string[]; } /** Rebuild from retained source records; no cache survives deletion, retention, or reset. */ export declare function summarizeCareer(histories: readonly (readonly GoalFlightEventRecord[])[], coverage: CareerCoverage): SortieCareer; /** One bounded, read-only scan at terminal time. Current records are reused, not fetched again. */ export declare function collectCareer(directories: readonly string[], currentPath: string, current: readonly GoalFlightEventRecord[], read: (path: string) => Promise<{ readonly records: readonly GoalFlightEventRecord[]; }>, maxFiles?: number): Promise; export declare function renderCareer(career: SortieCareer | undefined): string[];