import * as pm from 'prosemirror-test-builder'; import { MarkBuilder, NodeBuilder } from 'prosemirror-test-builder'; import type { EditorSchema, ProsemirrorNode, ProsemirrorPlugin } from '@remirror/core-types'; import { EditorState, Selection } from '@remirror/pm/state'; /** * Checks that the tagged doc has a selection * * @param taggedDoc */ export declare function taggedDocHasSelection(taggedDoc: ProsemirrorNode): boolean; /** * Initialize the selection based on the passed in tagged node via it's cursor. * * The supported tags are `['cursor', 'node', 'start', 'end', 'anchor', 'all']` * * @param taggedDoc */ export declare function initSelection(taggedDoc: ProsemirrorNode): Selection | undefined; /** * Returns a selection regardless of whether anything is tagged in the provided doc * * @param taggedDoc */ export declare function selectionFor(taggedDoc: ProsemirrorNode): Selection; /** * Create the editor state for a tagged prosemirror doc * * @param taggedDoc */ export declare function createState(taggedDoc: ProsemirrorNode, plugins?: ProsemirrorPlugin[]): EditorState; interface NodeTypeAttributes extends Record { nodeType: string; } interface MarkTypeAttributes extends Record { markType: string; } interface DefaultBuilderTypes { doc: NodeTypeAttributes; p: NodeTypeAttributes; text: NodeTypeAttributes; } type BuilderTypes = Record; type BuilderReturns = { [Name in keyof T]: T[Name] extends NodeTypeAttributes ? NodeBuilder : MarkBuilder; }; /** * A short hand way for building prosemirror test builders with the core nodes already provided * - `doc` * - `paragraph` | 'p' * - `text` * * @param testSchema - The schema to use which provided a doc, paragraph and text schema * @param names - the extra marks and nodes to provide with their attributes */ export declare function pmBuild(testSchema: EditorSchema, names: Types): BuilderReturns; export declare const a: pm.MarkBuilder, li: pm.NodeBuilder, ul: pm.NodeBuilder, ol: pm.NodeBuilder, atomBlock: pm.NodeBuilder, atomContainer: pm.NodeBuilder, atomInline: pm.NodeBuilder, blockquote: pm.NodeBuilder, code: pm.MarkBuilder, doc: pm.NodeBuilder, em: pm.MarkBuilder, link: pm.MarkBuilder, p: pm.NodeBuilder, paragraph: pm.NodeBuilder, strong: pm.MarkBuilder, table: pm.NodeBuilder, td: pm.NodeBuilder, text: pm.NodeBuilder, th: pm.NodeBuilder, tr: pm.NodeBuilder, h1: pm.NodeBuilder, h2: pm.NodeBuilder, h3: pm.NodeBuilder, h4: pm.NodeBuilder, h5: pm.NodeBuilder, h6: pm.NodeBuilder, tableCell: pm.NodeBuilder, tableHeaderCell: pm.NodeBuilder, tableRow: pm.NodeBuilder; export declare const code_block: NodeBuilder; export declare const pre: NodeBuilder; export declare const img: NodeBuilder; export declare const hr: NodeBuilder; export declare const br: NodeBuilder; export declare const codeBlock: NodeBuilder; export declare const hardBreak: NodeBuilder; export declare const heading: NodeBuilder; export declare const horizontalRule: NodeBuilder; export declare const image: NodeBuilder; export declare const tdEmpty: ProsemirrorNode; export declare const thEmpty: ProsemirrorNode; export declare const tdCursor: ProsemirrorNode; export declare const thCursor: ProsemirrorNode; export { pm };