import { Renderable, type RenderableOptions } from "../Renderable"; import { Selection, type LocalSelectionBounds } from "../lib/selection"; import { TextBuffer } from "../text-buffer"; import { TextBufferView } from "../text-buffer-view"; import { RGBA } from "../lib/RGBA"; import { type RenderContext, type LineInfoProvider } from "../types"; import type { OptimizedBuffer } from "../buffer"; import type { LineInfo } from "../zig"; export interface TextBufferOptions extends RenderableOptions { fg?: string | RGBA; bg?: string | RGBA; selectionBg?: string | RGBA; selectionFg?: string | RGBA; selectable?: boolean; attributes?: number; wrapMode?: "none" | "char" | "word"; tabIndicator?: string | number; tabIndicatorColor?: string | RGBA; truncate?: boolean; } export declare abstract class TextBufferRenderable extends Renderable implements LineInfoProvider { selectable: boolean; protected _defaultFg: RGBA; protected _defaultBg: RGBA; protected _defaultAttributes: number; protected _selectionBg: RGBA | undefined; protected _selectionFg: RGBA | undefined; protected _wrapMode: "none" | "char" | "word"; protected lastLocalSelection: LocalSelectionBounds | null; protected _tabIndicator?: string | number; protected _tabIndicatorColor?: RGBA; protected _scrollX: number; protected _scrollY: number; protected _truncate: boolean; protected textBuffer: TextBuffer; protected textBufferView: TextBufferView; protected _defaultOptions: { fg: RGBA; bg: RGBA; selectionBg: undefined; selectionFg: undefined; selectable: true; attributes: number; wrapMode: "none" | "char" | "word"; tabIndicator: undefined; tabIndicatorColor: undefined; truncate: false; }; constructor(ctx: RenderContext, options: TextBufferOptions); protected onMouseEvent(event: any): void; protected handleScroll(event: any): void; get lineInfo(): LineInfo; get lineCount(): number; get virtualLineCount(): number; get scrollY(): number; set scrollY(value: number); get scrollX(): number; set scrollX(value: number); get scrollWidth(): number; get scrollHeight(): number; get maxScrollY(): number; get maxScrollX(): number; protected updateViewportOffset(): void; get plainText(): string; get textLength(): number; get fg(): RGBA; set fg(value: RGBA | string | undefined); get selectionBg(): RGBA | undefined; set selectionBg(value: RGBA | string | undefined); get selectionFg(): RGBA | undefined; set selectionFg(value: RGBA | string | undefined); get bg(): RGBA; set bg(value: RGBA | string | undefined); get attributes(): number; set attributes(value: number); get wrapMode(): "none" | "char" | "word"; set wrapMode(value: "none" | "char" | "word"); get tabIndicator(): string | number | undefined; set tabIndicator(value: string | number | undefined); get tabIndicatorColor(): RGBA | undefined; set tabIndicatorColor(value: RGBA | string | undefined); get truncate(): boolean; set truncate(value: boolean); protected onResize(width: number, height: number): void; protected refreshLocalSelection(): boolean; private updateLocalSelection; protected updateTextInfo(): void; private setupMeasureFunc; shouldStartSelection(x: number, y: number): boolean; onSelectionChanged(selection: Selection | null): boolean; getSelectedText(): string; hasSelection(): boolean; getSelection(): { start: number; end: number; } | null; render(buffer: OptimizedBuffer, deltaTime: number): void; protected renderSelf(buffer: OptimizedBuffer): void; destroy(): void; protected onFgChanged(newColor: RGBA): void; protected onBgChanged(newColor: RGBA): void; protected onAttributesChanged(newAttributes: number): void; }