import { Renderable, type RenderableOptions } from "../Renderable"; import { OptimizedBuffer } from "../buffer"; import type { RenderContext, LineInfoProvider } from "../types"; import { RGBA } from "../lib/RGBA"; export interface LineSign { before?: string; beforeColor?: string | RGBA; after?: string; afterColor?: string | RGBA; } export interface LineColorConfig { gutter?: string | RGBA; content?: string | RGBA; } /** * Represents a highlighted span within a line for word-level diff highlighting. */ export interface LineInlineHighlight { /** Starting column (0-based, in display characters) */ startCol: number; /** Ending column (exclusive, in display characters) */ endCol: number; /** Background color for this highlight */ bg: RGBA; } export interface LineNumberOptions extends RenderableOptions { target?: Renderable & LineInfoProvider; fg?: string | RGBA; bg?: string | RGBA; minWidth?: number; paddingRight?: number; lineColors?: Map; lineSigns?: Map; lineNumberOffset?: number; hideLineNumbers?: Set; lineNumbers?: Map; showLineNumbers?: boolean; /** Inline highlights for word-level diff highlighting (per logical line) */ inlineHighlights?: Map; } export declare class LineNumberRenderable extends Renderable { private gutter; private target; private _lineColorsGutter; private _lineColorsContent; private _lineSigns; private _inlineHighlights; private _fg; private _bg; private _minWidth; private _paddingRight; private _lineNumberOffset; private _hideLineNumbers; private _lineNumbers; private _isDestroying; private handleLineInfoChange; private parseLineColor; constructor(ctx: RenderContext, options: LineNumberOptions); private setTarget; add(child: Renderable): number; remove(id: string): void; destroyRecursively(): void; clearTarget(): void; protected renderSelf(buffer: OptimizedBuffer): void; set showLineNumbers(value: boolean); get showLineNumbers(): boolean; setLineColor(line: number, color: string | RGBA | LineColorConfig): void; clearLineColor(line: number): void; clearAllLineColors(): void; setLineColors(lineColors: Map): void; getLineColors(): { gutter: Map; content: Map; }; setLineSign(line: number, sign: LineSign): void; clearLineSign(line: number): void; clearAllLineSigns(): void; setLineSigns(lineSigns: Map): void; getLineSigns(): Map; set lineNumberOffset(value: number); get lineNumberOffset(): number; setHideLineNumbers(hideLineNumbers: Set): void; getHideLineNumbers(): Set; setLineNumbers(lineNumbers: Map): void; getLineNumbers(): Map; /** * Sets inline highlights for word-level diff highlighting. * * @param inlineHighlights - Map from logical line index to array of highlights */ setInlineHighlights(inlineHighlights: Map): void; /** * Clears all inline highlights. */ clearInlineHighlights(): void; highlightLines(startLine: number, endLine: number, color: string | RGBA | LineColorConfig): void; clearHighlightLines(startLine: number, endLine: number): void; }