import { Node as ProseMirrorNode } from 'prosemirror-model';
import { Editor } from '../../core/Editor.js';
import { CitationAddress, CitationSourceAddress, BibliographyAddress, CitationDomain, CitationInfo, BibliographyInfo, DiscoveryItem } from '../../../../../../document-api/src/index.js';
export interface ResolvedCitation {
    node: ProseMirrorNode;
    pos: number;
    sourceIds: string[];
    locale: string | null;
    resolvedText: string;
    blockId: string;
}
export interface ResolvedBibliography {
    node: ProseMirrorNode;
    pos: number;
    nodeId: string;
    commandNodeId?: string;
}
export declare function findAllCitations(doc: ProseMirrorNode): ResolvedCitation[];
export declare function resolveCitationTarget(doc: ProseMirrorNode, target: CitationAddress): ResolvedCitation;
export declare function extractCitationInfo(doc: ProseMirrorNode, resolved: ResolvedCitation): CitationInfo;
export declare function buildCitationDiscoveryItem(doc: ProseMirrorNode, resolved: ResolvedCitation, evaluatedRevision: string): DiscoveryItem<CitationDomain>;
export declare function findAllBibliographies(doc: ProseMirrorNode): ResolvedBibliography[];
export declare function resolveBibliographyTarget(doc: ProseMirrorNode, target: BibliographyAddress): ResolvedBibliography;
export declare function resolvePostMutationBibliographyId(doc: ProseMirrorNode, sdBlockId: string): string;
export declare function extractBibliographyInfo(resolved: ResolvedBibliography): BibliographyInfo;
export declare function buildBibliographyDiscoveryItem(resolved: ResolvedBibliography, evaluatedRevision: string): DiscoveryItem<BibliographyInfo>;
export interface CitationSourceRecord {
    tag: string;
    type: string;
    fields: Record<string, unknown>;
}
export declare function getSourcesFromConverter(editor: Editor): CitationSourceRecord[];
/**
 * Persists the bibliography style to the converter so DOCX export writes
 * the correct `SelectedStyle` / `StyleName` attributes on the sources root.
 *
 * `SelectedStyle` is an XSL path (e.g. `"/APA.XSL"`); `StyleName` is the
 * human-readable label (e.g. `"APA"`).
 */
export declare function syncBibliographyStyleToConverter(editor: Editor, style: string): void;
export declare function resolveSourceTarget(editor: Editor, target: CitationSourceAddress): CitationSourceRecord;
//# sourceMappingURL=citation-resolver.d.ts.map