import type { JSONDocNode } from '@atlaskit/editor-json-transformer';
import type { Node } from '@atlaskit/editor-prosemirror/model';
import type { EditorView } from '@atlaskit/editor-prosemirror/view';
import type { ResolvedEditorState } from '../collab';
import type { EventDispatcher } from '../event-dispatcher';
export type ContextUpdateHandler = (editorView: EditorView, eventDispatcher: EventDispatcher) => void;
export type ReplaceRawValue = Node | object | string;
export type GetResolvedEditorStateReason = 'publish' | 'draft-sync' | 'get-content';
export interface EditorActionsOptions<T = any> {
    appendText: (text: string) => boolean;
    blur: () => boolean;
    clear: () => boolean;
    focus: () => boolean;
    getNodeByFragmentLocalId: (id: string) => Node | undefined;
    getNodeByLocalId: (id: string) => Node | undefined;
    getResolvedEditorState: (reason: GetResolvedEditorStateReason) => Promise<ResolvedEditorState | undefined>;
    getSelectedNode: () => Node | undefined;
    getValue: () => Promise<T | JSONDocNode | undefined>;
    isDocumentEmpty: () => boolean;
    replaceDocument: (rawValue: any) => boolean;
    replaceSelection: (rawValue: ReplaceRawValue | Array<ReplaceRawValue>) => boolean;
}
