import { RGBA } from "./lib/RGBA";
import { type LineInfo, type RenderLib } from "./zig";
import { type Pointer } from "bun:ffi";
import type { TextBuffer } from "./text-buffer";
export declare class TextBufferView {
    private lib;
    private viewPtr;
    private textBuffer;
    private _destroyed;
    constructor(lib: RenderLib, ptr: Pointer, textBuffer: TextBuffer);
    static create(textBuffer: TextBuffer): TextBufferView;
    private guard;
    get ptr(): Pointer;
    setSelection(start: number, end: number, bgColor?: RGBA, fgColor?: RGBA): void;
    updateSelection(end: number, bgColor?: RGBA, fgColor?: RGBA): void;
    resetSelection(): void;
    getSelection(): {
        start: number;
        end: number;
    } | null;
    hasSelection(): boolean;
    setLocalSelection(anchorX: number, anchorY: number, focusX: number, focusY: number, bgColor?: RGBA, fgColor?: RGBA): boolean;
    updateLocalSelection(anchorX: number, anchorY: number, focusX: number, focusY: number, bgColor?: RGBA, fgColor?: RGBA): boolean;
    resetLocalSelection(): void;
    setWrapWidth(width: number | null): void;
    setWrapMode(mode: "none" | "char" | "word"): void;
    setViewportSize(width: number, height: number): void;
    setViewport(x: number, y: number, width: number, height: number): void;
    get lineInfo(): LineInfo;
    get logicalLineInfo(): LineInfo;
    getSelectedText(): string;
    getPlainText(): string;
    setTabIndicator(indicator: string | number): void;
    setTabIndicatorColor(color: RGBA): void;
    measureForDimensions(width: number, height: number): {
        lineCount: number;
        maxWidth: number;
    } | null;
    getVirtualLineCount(): number;
    destroy(): void;
}
