import { Editor } from './Editor.js';
import { EditorOptions } from './types/EditorConfig.js';
/**
 * Options for creating a story editor (header, footer, footnote, endnote, etc.).
 */
export interface StoryEditorOptions {
    /**
     * Unique identifier for the story (e.g. section relationship ID).
     * Falls back to 'story' if not provided.
     */
    documentId?: string;
    /**
     * Whether this story is a header or footer.
     * When true, the editor sets `isHeaderOrFooter` which disables pagination
     * and enables page-number field resolution.
     * @default true
     */
    isHeaderOrFooter?: boolean;
    /**
     * Force headless mode regardless of the parent editor's setting.
     * When true, the editor is created without a DOM view.
     * Defaults to the parent editor's `isHeadless` value.
     */
    headless?: boolean;
    /**
     * The current page number for PAGE field resolution.
     * Must be a positive integer.
     * @default 1
     */
    currentPageNumber?: number;
    /**
     * The current formatted PAGE field display text for section-aware story editors.
     */
    currentPageNumberText?: string;
    /**
     * The current numeric PAGE display value for field-local formatting.
     */
    currentPageDisplayNumber?: number;
    /**
     * The current PAGE chapter prefix for field-local formatting.
     */
    currentPageChapterNumberText?: string;
    /**
     * The current PAGE chapter separator for field-local formatting.
     */
    currentPageChapterSeparator?: 'hyphen' | 'period' | 'colon' | 'emDash' | 'enDash';
    /**
     * The total page count for NUMPAGES field resolution.
     * Must be a positive integer.
     * @default 1
     */
    totalPageCount?: number;
    /**
     * The current section's physical page count for SECTIONPAGES field resolution.
     * Must be a positive integer.
     * @default 1
     */
    sectionPageCount?: number;
    /**
     * The container element to mount the editor into.
     * Required for non-headless mode; ignored when headless.
     */
    element?: HTMLElement | null;
    /**
     * Extra EditorOptions to merge into the story editor.
     * These are applied last and can override any computed defaults.
     */
    editorOptions?: Partial<EditorOptions>;
}
/**
 * Creates a lightweight "story" editor linked to a parent editor.
 *
 * A story editor is a secondary ProseMirror editor used to render and edit
 * sub-documents such as headers, footers, footnotes, and endnotes. It shares
 * the parent editor's schema, media, fonts, and list numbering context, but
 * runs with pagination, collaboration, comments, and tracked changes disabled.
 *
 * This factory handles only the core editor construction. It does NOT handle:
 * - DOM layout, styling, or positioning
 * - Event binding (onCreate, onBlur, toolbar wiring)
 * - Container element creation or appending to a host
 *
 * Those UI concerns are left to the caller (e.g. `createHeaderFooterEditor`
 * in pagination-helpers.js for PresentationEditor sessions).
 *
 * @param parentEditor - The parent editor whose schema, media, fonts, and
 *   numbering context should be inherited.
 * @param content - PM JSON content to load into the story editor.
 * @param options - Optional configuration for the story editor.
 * @returns A new Editor instance configured as a story sub-editor.
 *
 * @throws {TypeError} If parentEditor or content is missing.
 *
 * @example
 * ```ts
 * // Headless usage (document-api / tests)
 * const editor = createStoryEditor(parentEditor, headerJson, {
 *   documentId: 'rId7',
 *   headless: true,
 * });
 *
 * // UI usage (via pagination-helpers wrapper)
 * const editor = createStoryEditor(parentEditor, footerJson, {
 *   documentId: sectionId,
 *   element: editorContainer,
 *   editorOptions: {
 *     onCreate: (evt) => handleCreate(evt),
 *     onBlur: (evt) => handleBlur(evt),
 *   },
 * });
 * ```
 */
export declare function createStoryEditor(parentEditor: Editor, content: Record<string, unknown>, options?: StoryEditorOptions): Editor;
//# sourceMappingURL=story-editor-factory.d.ts.map