import { type ReadFolder, type ReadFolderResult, type ReadLineRange } from "./read-folders/types.ts"; export type ReadSegment = (ReadLineRange & { readonly kind: "kept"; readonly text: string; }) | (ReadLineRange & { readonly kind: "elided"; }); export type RenderedReadView = { readonly text: string; readonly elidedRanges: readonly ReadLineRange[]; readonly footer: { readonly text: string; readonly rereads: readonly { readonly offset: number; readonly limit: number; }[]; }; }; export type ReadSummaryFallback = "unsupported_language" | "prose_exempt" | "parse_failure" | "stale_source" | "invalid_ranges" | "too_short" | "no_elision" | "skeleton_exceeds_budget" | "visible_budget_unreachable" | "no_output_saving"; export type SegmentedReadView = { readonly status: "summary"; readonly segments: readonly ReadSegment[]; readonly visibleSourceLines: number; readonly rendered: RenderedReadView; } | { readonly status: "no_summary"; readonly reason: ReadSummaryFallback; }; /** Compose only untruncated default text reads; each reader owns its existing raw path. */ export declare function createDefaultReadSummary(input: { readonly path: string; readonly text: string; readonly offset?: number; readonly limit?: number; readonly folder?: ReadFolder; readonly truncated: boolean; }): RenderedReadView | undefined; export declare class InvalidReadSegmentsError extends Error { readonly code = "invalid_segments"; constructor(); } /** The sole validator/renderer/footer implementation. Synthetic lines are never source slices. */ export declare function renderSegmentedReadView({ text, segments, }: { readonly text: string; readonly segments: readonly ReadSegment[]; }): RenderedReadView; /** Breadth-first refinement counts only retained source lines, never sentinels/footer lines. */ export declare function createSegmentedReadView({ text, parsed, }: { readonly text: string; readonly parsed: ReadFolderResult; }): SegmentedReadView; //# sourceMappingURL=segmented-read-view.d.ts.map