import type { FixedEditorClusterRender } from "./cluster.js"; export interface TerminalLike { columns: number; rows: number; kittyProtocolActive?: boolean; write(data: string): void; } interface KeyboardScrollShortcuts { up: string; down: string; } interface TerminalSplitCompositorOptions { tui: any; terminal: TerminalLike; renderCluster: (width: number, terminalRows: number) => FixedEditorClusterRender; getShowHardwareCursor?: () => boolean; mouseScroll?: boolean; keyboardScrollShortcuts?: KeyboardScrollShortcuts; onCopySelection?: (text: string) => void; } interface PatchedRenderable { render(width: number): string[]; } interface DisposeOptions { resetExtendedKeyboardModes?: boolean; } export declare function beginSynchronizedOutput(): string; export declare function endSynchronizedOutput(): string; export declare function setScrollRegion(top: number, bottom: number): string; export declare function resetScrollRegion(): string; export declare function moveCursor(row: number, col: number): string; export declare function emergencyTerminalModeReset(): string; export declare function buildFixedClusterPaint(cluster: FixedEditorClusterRender, terminalRows: number, width: number, showHardwareCursor: boolean): string; export declare class TerminalSplitCompositor { private readonly tui; private readonly terminal; private readonly renderCluster; private readonly getShowHardwareCursor; private readonly mouseScroll; private readonly keyboardScrollShortcuts; private readonly onCopySelection; private extendedKeyboardMode; private readonly rowsDescriptor; private readonly terminalWriteOwnDescriptor; private readonly originalWrite; private readonly tuiDoRenderOwnDescriptor; private readonly originalDoRender; private readonly tuiRenderOwnDescriptor; private readonly originalRender; private readonly tuiCompositeLineAtOwnDescriptor; private originalCompositeLineAt; private readonly patchedRenders; private removeInputListener; private emergencyCleanup; private mouseReportingResumeTimer; private clipboardRestoreTimer; private installed; private disposed; private writing; private renderPassActive; private renderPassCluster; private renderingCluster; private renderingScrollableRoot; private checkingOverlay; private scrollOffset; private maxScrollOffset; private lastRootLineCount; private rootLines; private visibleRootStart; private visibleScrollableRows; private visibleRootLines; private visibleClusterLines; private selectionArea; private selectionAnchor; private selectionFocus; private selectionDragging; private preserveSelectionFocusOnRelease; private lastLeftPress; constructor(options: TerminalSplitCompositorOptions); install(): void; hideRenderable(target: PatchedRenderable): void; renderHidden(target: PatchedRenderable, width: number): string[]; jumpToRootBottom(): boolean; requestRepaint(): void; dispose(options?: DisposeOptions): void; private rollbackPartialInstall; private getRawRows; private getScrollableRows; private renderScrollableRoot; private handleInput; private handleMousePacket; private updateVisibleRootWindow; private finishSelection; private startSelection; private selectionLocationForPacket; private scrollSelectionAtViewportEdge; private clampedSelectionPointForPacket; private renderSelectionHighlight; private selectionLineWidth; private getSelectedText; private getSelectionRangeForLine; private isLocationInsideSelection; private scrollBy; private requestRender; private pauseMouseReportingForContextMenu; private clearSelection; private activeExtendedKeyboardMode; private enableAlternateScreenKeyboardMode; private restoreTerminalState; private restoreTerminalStateForExit; private write; private getCluster; private decorateCluster; private withClusterRender; private hasVisibleOverlay; } export {}; //# sourceMappingURL=terminal-split.d.ts.map