import { type Position, type VimBufferSnapshot, type VimFingerprint, type VimLoadedFile } from "./types"; export declare function snapshotEqual(left: VimBufferSnapshot, right: VimBufferSnapshot): boolean; export declare class VimBuffer { displayPath: string; filePath: string; lines: string[]; cursor: Position; modified: boolean; trailingNewline: boolean; baseFingerprint: VimFingerprint | null; editabilityChecked: boolean; constructor(input: VimLoadedFile); clone(): VimBuffer; createSnapshot(): VimBufferSnapshot; restore(snapshot: VimBufferSnapshot): void; replaceLoadedFile(input: VimLoadedFile): void; markSaved(input: VimLoadedFile): void; lineCount(): number; lastLineIndex(): number; getLine(line: number): string; clampLine(line: number): number; clampCol(line: number, col: number): number; setCursor(position: Position): void; clampCursor(): void; firstNonBlank(line: number): number; getText(): string; setText(text: string, trailingNewline?: boolean): void; currentOffset(): number; positionToOffset(position: Position): number; offsetToPosition(offset: number): Position; setCursorFromOffset(offset: number): void; replaceOffsets(start: number, end: number, replacement: string, cursorOffset?: number): void; deleteOffsets(start: number, end: number): string; deleteLines(startLine: number, endLine: number): string[]; insertLines(index: number, newLines: string[]): void; replaceLine(line: number, content: string): void; joinLines(startLine: number, count: number): void; indentLines(startLine: number, endLine: number, indentUnit: string, direction: 1 | -1): void; getCharacterAtOffset(offset: number): string; getCharacter(position: Position): string; }