export declare const isKittyImageLine: (line: string) => boolean; export interface KittyViewportFrame { lines: string[]; /** Reserved rows must stay empty so Pi pre-clears them before placing pixels. */ imageRows: ReadonlySet; } /** Index immutable retained frames once. Scrolling then touches only the viewport * and its intersecting images, never a long run of offscreen blank reservations. * The two-entry, byte-bounded crop cache avoids rebuilding megabyte transmissions * on unchanged frames. No image data is decoded, uploaded or deleted here. */ export declare class KittyViewport { private source; private images; private readonly crops; private cropBytes; clear(): void; slice(source: readonly string[], start: number, end: number): KittyViewportFrame; private crop; } /** Hide only background placements that can reach the visible terminal. Leave * offscreen scrollback intact; removing it would force unnecessary reuploads on * close. Return text-only frames unchanged instead of copying retained history. */ export declare function hideKittyImages(lines: string[], viewportHeight?: number): string[]; //# sourceMappingURL=kitty-viewport.d.ts.map