import { Mark, Node, Slice } from "prosemirror-model"; import { AllSelection, EditorState, NodeSelection, Plugin, Selection, TextSelection } from "prosemirror-state"; import { PosRef, RawBuilderContent, RefMap, RefsFragment, RefsNode } from "../composing"; import { CellSelection } from "../table/CellSelection"; import { DocPos } from "../types"; import { WedgeSelection } from "../wedge/WedgeSelection"; export declare type DocRefMap = ReadonlyMap; export declare type DovetailNodeFactory = (api: Readonly) => RefsNode; export declare type DovetailFragmentFactory = (api: Readonly) => RawBuilderContent | Array; export declare type DovetailMarksFactory = (api: Readonly) => Mark[]; export declare type AllSelectionBuilder = () => AllSelection; export declare type TextSelectionBuilder = (anchor: number, head?: number) => TextSelection; export declare type NodeSelectionBuilder = (from: number) => NodeSelection; export declare type CellSelectionBuilder = (anchor: number, head?: number) => CellSelection; export declare type WedgeSelectionBuilder = (pos: number) => WedgeSelection; export declare type SelectionBuilder = (api: { all: AllSelectionBuilder; text: TextSelectionBuilder; node: NodeSelectionBuilder; cell: CellSelectionBuilder; wedge: WedgeSelectionBuilder; refs: RefMap; }) => Selection; export declare type PluginsBuilder = (api: { refs: DocRefMap; doc: Node; }) => Plugin[]; export declare type EditorStateFactory = (fragmentFactory: DovetailFragmentFactory, options?: { storedMarks?: DovetailMarksFactory; selection?: SelectionBuilder; plugins?: PluginsBuilder; }) => EditorState; declare const dovetailNodeFactories: { table: import("../composing").NodeFactory; th_: (attrs: { rowspan?: number | undefined; colspan?: number | undefined; colwidth?: number[] | null | undefined; }) => import("../composing").NodeFactory; th22: import("../composing").NodeFactory; td22: import("../composing").NodeFactory; td_: (attrs: { rowspan?: number | undefined; colspan?: number | undefined; colwidth?: number[] | null | undefined; }) => import("../composing").NodeFactory; c11: RefsNode; c: (colspan: number, rowspan: number) => RefsNode; cEmpty: RefsNode; cEmptyAnchor: RefsNode; cEmptyHead: RefsNode; cEmptyCursor: RefsNode; cCursor: RefsNode; cAnchor: RefsNode; cHead: RefsNode; h: (colspan: number, rowspan: number) => RefsNode; h11: RefsNode; hEmpty: RefsNode; hCursor: RefsNode; doc: import("../composing").NodeFactory; at: typeof import("../attachment/compose").compose; p: import("../composing").NodeFactory; ul: import("../composing").NodeFactory; ol: import("../composing").NodeFactory; li: import("../composing").NodeFactory; hr: import("../composing").NodeFactory; bq: import("../composing").NodeFactory; tbl: import("../composing").NodeFactory; tr: import("../composing").NodeFactory; td: import("../composing").NodeFactory; th: import("../composing").NodeFactory; h1: import("../composing").NodeFactory; h2: import("../composing").NodeFactory; br: import("../composing").NodeFactory; text: (text: string) => RefsNode; a: (url: string, title?: string | undefined) => import("../composing").FragmentFactory; b: import("../composing").FragmentFactory; i: import("../composing").FragmentFactory; s: import("../composing").FragmentFactory; u: import("../composing").FragmentFactory; fragment: import("../composing").FragmentFactory; }; declare const dovetailMarkBuilders: { b: () => Mark>; i: () => Mark>; s: () => Mark>; u: () => Mark>; }; export declare function buildNode(factory: DovetailNodeFactory): RefsNode; export declare function buildMarks(builder: DovetailMarksFactory): Mark[]; export declare function buildSlice(builder: DovetailFragmentFactory, openStart?: number, openEnd?: number): Slice; export interface BuildEditorStateOptions { storedMarks?: DovetailMarksFactory; selection?: SelectionBuilder; plugins?: PluginsBuilder; } export declare function buildEditorState(docFactory: DovetailNodeFactory, options?: BuildEditorStateOptions): EditorState; export declare function editorStateFactoryFactory(docFactory: (children: RefsFragment) => DovetailNodeFactory): EditorStateFactory; export declare function describeRootsFactory(factories: ReadonlyArray<[string, EditorStateFactory]>): (fn: (editorStateFactory: EditorStateFactory) => void) => void; export declare function namedDescribeRootsFactory(factories: ReadonlyArray<[string, EditorStateFactory]>): (name: string, fn: (editorStateFactory: EditorStateFactory) => void) => void; export {};