import { MarkdownEditorSelection, MarkdownTextChange } from './types'; export interface MarkdownHistoryStep { changes: MarkdownTextChange[]; selection: MarkdownEditorSelection | null; } export declare class MarkdownHistory { private done; private undone; private readonly limit; private readonly delay; constructor(limit?: number, delay?: number); get canUndo(): boolean; get canRedo(): boolean; clear(): void; /** A local edit of `doc`. */ record(doc: string, changes: readonly MarkdownTextChange[], before: MarkdownEditorSelection | null, after: MarkdownEditorSelection | null, group: string | null, time?: number): void; /** Ends the current typing run: the next edit starts a step of its own. */ seal(): void; undo(): MarkdownHistoryStep | null; redo(): MarkdownHistoryStep | null; /** A change from elsewhere was applied to the current document, `docLength` long before it. */ rebase(remote: readonly MarkdownTextChange[], docLength: number): void; }