import { Node as ProseMirrorNode } from 'prosemirror-model'; import { SDContentNode, SDInlineNode, SDDocument, SDReadOptions } from '@superdoc/document-api'; import { Editor } from '../../core/Editor.js'; /** * Projects a single ProseMirror content node into an SDM/1 SDContentNode. */ export declare function projectContentNode(pmNode: ProseMirrorNode): SDContentNode; /** * Projects a ProseMirror text node (with marks) into SDM/1 inline nodes. */ export declare function projectInlineNode(pmNode: ProseMirrorNode): SDInlineNode; /** * Projects a mark-based inline candidate (hyperlink, comment) into an SDInlineNode. * * Mark-based candidates carry `mark` and `attrs` but no PM `node` reference. * This resolves the spanned text from the document and builds the correct * SDM/1 shape (e.g. SDHyperlink with inlines) rather than a generic run. */ export declare function projectMarkBasedInline(editor: Editor, candidate: { nodeType: string; anchor: { start: { blockId: string; offset: number; }; end: { blockId: string; offset: number; }; }; attrs?: Record; }): SDInlineNode | null; /** * Resolves text content from a PM document for a given anchor range. * * Uses {@link blockMatchesId} to find the containing block, which handles * both paraId-primary and sdBlockId-primary documents correctly. */ export declare function resolveTextByBlockId(editor: Editor, anchor: { start: { blockId: string; offset: number; }; end: { blockId: string; offset: number; }; }): string; /** * Projects the full editor document into an SDDocument. * * @param options - SDReadOptions controlling projection depth. * Currently accepted but reserved for future use: * - `includeResolved` — resolved style values (requires style-engine integration) * - `includeProvenance` — source provenance metadata * - `includeContext` — parent/sibling context for each node */ export declare function projectDocument(editor: Editor, options?: SDReadOptions): SDDocument; //# sourceMappingURL=sd-projection.d.ts.map