import { Node as ProseMirrorNode } from 'prosemirror-model';
import { SDContentNode, SDInlineNode, SDDocument, SDReadOptions } from '../../../../../../document-api/src/index.js';
import { Editor } from '../../core/Editor.js';
import { TextOffsetOptions } from './text-offset-resolver.js';
type ProjectionOptions = TextOffsetOptions;
/**
 * Projects a single ProseMirror content node into an SDM/1 SDContentNode.
 */
export declare function projectContentNode(pmNode: ProseMirrorNode, options?: ProjectionOptions): SDContentNode;
/**
 * Projects a ProseMirror text node (with marks) into SDM/1 inline nodes.
 */
export declare function projectInlineNode(pmNode: ProseMirrorNode, options?: ProjectionOptions): 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<string, unknown>;
}): 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;
export {};
//# sourceMappingURL=sd-projection.d.ts.map