/** * @fileoverview Unified human-readable graph report. * * Extracted from `cli/graph.ts` so the orchestrator there stays focused * on dispatch (json/sarif/catalog-json/packages/report/gate/cloud-report). * * Owns the catalog-summary, findings-by-rule, entry-points, and summary * sections as a `string[]` builder (`buildUnifiedReportLines`). The graph * CLI feeds these lines into a `GraphDoneResult`; the central render seam * turns them into Ink (TTY) or plain text (pipe/CI) — there is no direct * stdout writer here anymore. */ import type { Catalog, Indexes } from '../types.js'; import type { Signal } from '@opensip-tools/core'; export interface UnifiedReportInput { readonly catalog: Catalog | null; readonly indexes: Indexes | null; readonly signals: readonly Signal[]; readonly cacheHit: boolean; } export declare function countFiles(catalog: Catalog): number; /** * Build the unified terminal report lines: catalog summary, findings * grouped by rule, top-N entry points, and a single-line summary. The * caller decides where to write them (raw stdout for non-interactive * paths, or the Ink view in the default human-report path). */ export interface BuildUnifiedReportOptions { /** * Whether to append the trailing "== Summary ==" footer block. * Default `true` for back-compat with the stdout writer. The Ink * runner sets this to `false` because the cli-ui `RunSummary` * component renders the summary in its place. */ readonly includeSummary?: boolean; } export declare function buildUnifiedReportLines(input: UnifiedReportInput, options?: BuildUnifiedReportOptions): readonly string[]; /** * The fast-tier approximation caveat for a catalog, or `undefined` when * the catalog is exact (semantic). Surfaced through `GraphDoneResult` so * the render seam shows it once, themed in Ink and plain in pipes — no * hand-written stdout copy. */ export declare function resolutionBannerText(resolutionMode: 'exact' | 'fast' | undefined): string | undefined; //# sourceMappingURL=graph-report.d.ts.map