import type { CaptureCoverage, SkipReason } from '@cclabsnz/sf-core'; export interface CoverageInput { /** The manifest for the window, or `undefined` when none was found. */ coverage: CaptureCoverage | undefined; } /** A source that was asked for and is not in the data. */ export interface MissingSource { source: string; reason: SkipReason | string; } export type CoverageState = 'complete' | 'incomplete' | 'unknown'; export interface CoverageAssessment { state: CoverageState; missing: MissingSource[]; capturedSources: string[]; /** The sentence that qualifies a row count. Never composed by the caller. */ statement(rowCount: number): string; /** The multi-line header every output leads with. */ banner(): string; } /** * Decide what the capture actually covers, and say so in words the reader cannot misread. * * This is the most important behaviour in the command. Every other part can be wrong and look * wrong; this one can be wrong and look like reassurance. "No rows matched" means either the * actor did nothing or nobody captured the hour — and those are opposite conclusions in an * investigation. * * The wording therefore belongs here, derived from state, rather than being left to whichever * renderer happens to be printing. A caller cannot accidentally report an unqualified absence, * because it never gets to phrase one. */ export declare function assessCoverage(input: CoverageInput): CoverageAssessment; //# sourceMappingURL=CaptureIndex.d.ts.map