import { Fragment as ProseMirrorFragment, Mark as ProseMirrorMark, Node as ProseMirrorNode, NodeType, Schema } from 'prosemirror-model'; import { Transaction } from 'prosemirror-state'; /** * Build a text-or-fragment suitable for insertion, splitting on '\t' and * inserting schema `tab` nodes at each split. * * Returns a plain text node when the schema has no `tab` node type, when the * parent disallows tab nodes (see {@link parentAllowsTabAt}), or when the text * contains no tab characters. The raw '\t' is preserved inside the text node * so exporters and readers still see the character. * * Callers are responsible for ensuring `text` is non-empty (ProseMirror's * `schema.text` throws on empty input). */ export declare function buildTextWithTabs(schema: Schema, text: string, marks: readonly ProseMirrorMark[] | undefined, opts?: { parentAllowsTab?: boolean; }): ProseMirrorNode | ProseMirrorFragment; /** * Check whether the parent node at `absPos` in `tr.doc` admits a node of * `nodeType` according to its content expression. * * Returns `true` when the parent cannot be probed (e.g. mocked test docs), * preserving pre-existing behavior for call sites that lack a full PM schema. */ export declare function parentAllowsNodeAt(tr: Transaction, absPos: number, nodeType: NodeType): boolean; /** * Tab-aware analogue of ProseMirror's `Node.textBetween`. * * The built-in `textBetween` cannot surface `tab` nodes because the tab node * schema defines `content: 'inline*'` (on purpose, to stop PM from auto- * inserting a separator after it during export), which means `isLeaf` is * `false` and any `leafText` callback is never invoked for tabs. This helper * walks the range directly, emitting a literal '\t' for every tab node so * reads round-trip with the input text. * * Non-tab inline leaves fall back to `leafFallback`, matching the placeholder * that the caller would have passed to `textBetween` (e.g. '' for plain text * extraction, '\ufffc' for offset-preserving reads, '\n' for get-text-adapter). */ export declare function textBetweenWithTabs(doc: ProseMirrorNode, from: number, to: number, blockSeparator: string, leafFallback: string): string; //# sourceMappingURL=text-with-tabs.d.ts.map