import { CursorAnchor, type Peritext } from '../../../../json-crdt-extensions/peritext';
import type { PeritextDataTransfer } from '../../../../json-crdt-extensions/peritext/transfer/PeritextDataTransfer';
import type { PeritextEventHandlerMap, PeritextEventTarget } from '../PeritextEventTarget';
import type * as events from '../types';
import type { PeritextClipboard } from '../clipboard/types';
import type { UndoCollector } from './types';
import type { UiHandle } from './ui/UiHandle';
import type { Point } from '../../../../json-crdt-extensions/peritext/rga/Point';
import type { EditorUi } from '../../../../json-crdt-extensions/peritext/editor/types';
export interface PeritextEventDefaultsOpts {
    clipboard?: PeritextClipboard;
    transfer?: PeritextDataTransfer;
}
/**
 * Implementation of default handlers for Peritext events, such as "insert",
 * "delete", "cursor", etc. These implementations are used by the
 * {@link PeritextEventTarget} to provide default behavior for each event type.
 * If `event.preventDefault()` is called on a Peritext event, the default handler
 * will not be executed.
 */
export declare class PeritextEventDefaults implements PeritextEventHandlerMap {
    readonly txt: Peritext;
    readonly et: PeritextEventTarget;
    readonly opts: PeritextEventDefaultsOpts;
    undo?: UndoCollector;
    ui?: UiHandle;
    protected editorUi: EditorUi;
    constructor(txt: Peritext, et: PeritextEventTarget, opts?: PeritextEventDefaultsOpts);
    protected getSelSet({ at }: events.SelectionDetailPart): events.SelectionSet;
    protected moveRange(start: Point, end: Point, anchor: CursorAnchor, move?: events.SelectionMoveInstruction[]): [start: Point, end: Point, anchor: CursorAnchor];
    protected moveSelSet(set: events.SelectionSet, { move }: events.SelectionMoveDetailPart): void;
    readonly change: (event: CustomEvent<events.ChangeDetail>) => void;
    readonly insert: ({ detail }: CustomEvent<events.InsertDetail>) => void;
    readonly delete: ({ detail }: CustomEvent<events.DeleteDetail>) => void;
    readonly cursor: ({ detail }: CustomEvent<events.CursorDetail>) => void;
    readonly format: ({ detail }: CustomEvent<events.FormatDetail>) => void;
    readonly marker: ({ detail }: CustomEvent<events.MarkerDetail>) => void;
    readonly buffer: ({ detail }: CustomEvent<events.BufferDetail>) => Promise<void>;
    readonly annals: (event: CustomEvent<events.AnnalsDetail>) => void;
}
