import type { DOMOutputSpec, Node as PMNode, NodeSpec, Mark, MarkSpec } from '@atlaskit/editor-prosemirror/model'; export type NodeSpecOptions = { parseDOM?: NodeSpec['parseDOM']; toDebugString?: () => string; toDOM?: (node: N) => DOMOutputSpec; }; export type NodeSpecFactory = typeof createPMNodeSpecFactory; export type MarkSpecOptions = { parseDOM?: MarkSpec['parseDOM']; toDebugString?: () => string; toDOM?: (mark: M, inline: boolean) => DOMOutputSpec; }; export type MarkSpecFactory = typeof createPMMarkSpecFactory; /** * Factory method to attach custom parseDOM and/or toDOM for nodeSpec * * @example * createPMNodeSpecFactory(node)({parseDOM: {}, toDOM: (node) => {} }); * * @param nodeSpec - NodeSpec without toDom and parseDom * @returns A function for a node which allows the consumer to define toDom and parseDom */ export declare const createPMNodeSpecFactory: >(nodeSpec: NodeSpec) => ({ parseDOM, toDOM, toDebugString }: NodeSpecOptions) => NodeSpec; /** * Factory method to attach custom parseDOM and/or toDOM for markSpec * * @example * createPMMarkSpecFactory(mark)({parseDOM: {}, toDOM: (mark, inline) => {} }); * * @param markSpec - Markspec without toDom and parseDom * @returns A function for a mark which allows the consumer to define toDom and parseDom */ export declare const createPMMarkSpecFactory: >(markSpec: MarkSpec) => ({ parseDOM, toDOM, toDebugString }: MarkSpecOptions) => MarkSpec;