import { Editor } from '../../core/Editor.js'; import { FootnoteListInput, FootnotesListResult, FootnoteGetInput, FootnoteInfo, FootnoteInsertInput, FootnoteUpdateInput, FootnoteRemoveInput, FootnoteMutationResult, FootnoteConfigureInput, FootnoteConfigResult, MutationOptions } from '../../../../../../document-api/src/index.js'; export declare function footnotesListWrapper(editor: Editor, query?: FootnoteListInput): FootnotesListResult; export declare function footnotesGetWrapper(editor: Editor, input: FootnoteGetInput): FootnoteInfo; /** * Insert a new footnote/endnote. * * Uses `compoundMutation` because it touches both: * 1. The OOXML notes part (add element) * 2. The PM document (insert footnoteReference/endnoteReference node) */ export declare function footnotesInsertWrapper(editor: Editor, input: FootnoteInsertInput, options?: MutationOptions): FootnoteMutationResult; /** * Update footnote/endnote content. * * Uses `mutatePart` directly — only the OOXML notes part is modified. * The derived cache is rebuilt by the `afterCommit` hook. */ export declare function footnotesUpdateWrapper(editor: Editor, input: FootnoteUpdateInput, options?: MutationOptions): FootnoteMutationResult; /** * Remove a footnote/endnote. * * Tombstone semantics (SD-3400): only the PM reference node is deleted; the * `w:footnote` element stays in the part so undo restores the note text. * Export prunes session-managed ids with no surviving reference. */ export declare function footnotesRemoveWrapper(editor: Editor, input: FootnoteRemoveInput, options?: MutationOptions): FootnoteMutationResult; /** * Remove the single note reference at an exact document position, tombstoning * the note: only the PM marker delete happens (history-recorded), while the * `w:footnote`/`w:endnote` element stays in the part so undo restores the * note text. The id is registered as session-managed; export prunes * registered ids with no surviving reference (SD-3400 undo fidelity). * * Position-addressed (not id-addressed) so callers that already hold the node * — the staged Backspace/Delete on a selected marker (SD-3400) — remove * exactly that reference even when the same id appears multiple times. * {@link footnotesRemoveWrapper} delegates here after resolving its target. */ export declare function removeNoteReferenceAt(editor: Editor, ref: { pos: number; noteId: string; type: 'footnote' | 'endnote'; }): boolean; /** * SD-3400: remove a note and EVERY body reference to it ("remove on both * sides"). Used by the note-area emptied-note commit, where the whole footnote * ceases to exist — including multi-reference notes, whose surviving markers * would otherwise keep the old (un-emptied) content. The `w:footnote` element * is tombstoned (kept in the part) so a single undo restores the whole note; * export prunes it while no reference exists. * * Type-aware: footnote and endnote ids are independent OOXML namespaces, so * resolution filters by note type — emptying endnote "2" must never touch * footnote "2". The address-based {@link footnotesRemoveWrapper} keeps its * single-reference semantics for the document API. */ export declare function removeNoteEverywhere(editor: Editor, input: { noteId: string; type: 'footnote' | 'endnote'; }): FootnoteMutationResult; /** * Configure footnote/endnote numbering and placement. * * Document-wide settings are written to `word/settings.xml` through the * parts system. Section-scoped settings that belong in `sectPr` go through * the document mutation path (not yet implemented — falls back to converter * cache for backward compatibility). */ export declare function footnotesConfigureWrapper(editor: Editor, input: FootnoteConfigureInput, options?: MutationOptions): FootnoteConfigResult; //# sourceMappingURL=footnote-wrappers.d.ts.map