import { Fragment, MarkType, Node, NodeType, Schema } from "prosemirror-model"; /** * Content node or mark builders can consume, e.g. * * const builder = nodeFactory('p'); * builder('string'); * builder(aNode); * builder(aRefsNode); * builder(aRefsTracker); * builder(aNode, aRefsNode, aRefsTracker); * builder(aSymbol); */ export declare type RawBuilderContent = symbol | string | Node | Fragment | RefsNode | RefsFragment; export declare type BuilderContent = PosRefBox | string | Node | Fragment | RefsNode | RefsFragment; export declare type NodeFactory = (...content: RawBuilderContent[]) => RefsNode; export declare type FragmentFactory = (...content: RawBuilderContent[]) => RefsFragment; /** * Represents a ProseMirror position in a document. */ export declare type Pos = number; /** * Reference to a position. */ export declare type PosRef = symbol | string; export declare type RefMap = ReadonlyMap; export declare class PosRefBox { readonly posRef: PosRef; constructor(posRef: PosRef); } /** * Association between a node and position refs. */ export declare class RefsNode { readonly node: Node; readonly refMap: RefMap; constructor(node: Node, refMap: RefMap); /** * Append content to the end of the node. */ append(...content: Array): RefsNode; /** * Prepend content to the start of the node. */ prepend(...content: Array): RefsNode; /** * Access the node's children. */ getContent(): RefsFragment; static from(node: Node): RefsNode; } /** * Association between a fragment and position refs. */ export declare class RefsFragment { readonly fragment: Fragment; readonly refMap: RefMap; constructor(fragment: Fragment, refMap: RefMap); } /** * Parse out inline text refs. */ export declare function parseText(text: string): ReadonlyArray; export declare function refsFragmentFactory(content: BuilderContent[], schema: Schema): RefsFragment; /** * Create a factory for nodes. */ export declare function nodeFactoryFactory(type: NodeType, attrs?: {}): NodeFactory; /** * Create a factory for marks. */ export declare function markFactoryFactory(type: MarkType, attrs?: {}): FragmentFactory; /** * Create a factory for fragments. */ export declare function fragmentFactoryFactory(schema: Schema): FragmentFactory;