import type { DocFragment, DocLine, DocNode, Position, SelectionSnapshot, Writeable } from './types.js'; declare const TYPE_DELETE = 1; type DeleteOperation = Readonly<{ _end: Position; _start: Position; _type: typeof TYPE_DELETE; }>; declare const TYPE_INSERT = 2; type InsertOperation = Readonly<{ _fragment: DocFragment; _pos: Position; _type: typeof TYPE_INSERT; }>; declare const TYPE_SELECT = 3; export type Operation = EditOperation | SelectOperataion; type EditOperation = DeleteOperation | InsertOperation; type SelectOperataion = Readonly<{ _anchor: Position | undefined; _focus: Position | undefined; _type: typeof TYPE_SELECT; }>; export declare class Transaction extends Array { static from(tr: ReadonlyArray): Transaction; delete(start: Position, end: Position): this; insert(start: Position, fragment: DocFragment): this; select(anchor?: Position, focus?: Position): this; transform(position: Position): Position; } /** * @internal */ export declare const isDocEqual: (docA: DocFragment, docB: DocFragment) => boolean; /** * @internal */ export declare const isTextNode: (node: DocNode) => node is Readonly<{ text: string; }>; /** * @internal */ export declare const getLineSize: (line: DocLine) => number; /** * @internal */ export declare const merge: (a: DocLine, b: DocLine) => DocLine; /** * @internal */ export declare const sliceDoc: (doc: DocFragment, start: Position, end: Position) => DocFragment; /** * @internal */ export declare const applyTransaction: (doc: Writeable, selection: Writeable, tr: Transaction) => void; export {};