/** File lines [first, last] (1-based, inclusive) a shown line stands for; null for a line of no file. */ export type Span = [number, number] | null; /** Text being shaped, as lines, with the file lines each stands for when the text is a file's (read results). */ export interface View { lines: string[]; /** Per line, its file span; null when the text is command output (hidden runs then point at a saved copy). */ spans: Span[] | null; } /** The pi call that prints lines `from`–`to` of `target` (a path or `artifact://N`). */ export declare function readCall(target: string, from: number, to: number): string; /** The file lines a run of shown lines [i, j) stands for, or null when none of them is a file line. */ export declare function runSpan(spans: readonly Span[], i: number, j: number): [number, number] | null; /** Lines `first`… of a file as a view: line i stands for file line `first + i`. */ export declare function fileSpans(count: number, first: number): Span[]; /** * `shown` (a file's lines from file line `first`, as printed) with each fold [from, to] (0-based indexes) replaced * by one `… [lines A-B]` marker, indented like the first non-blank line it replaces when `indent` is set. */ export declare function renderFolds(content: readonly string[], shown: readonly string[], first: number, folds: readonly { from: number; to: number; }[], indent: boolean): View;