import { Extension, Node, type Editor, type JSONContent } from '@tiptap/core'; import type { Node as ProseMirrorNode } from '@tiptap/pm/model'; import type { ArkmeComposerEmoji, ArkmeComposerMention } from './composer-draft-store.js'; export interface ArkmeMarkdownDraft { document: JSONContent; source: string; mentions: readonly ArkmeComposerMention[]; } /** Paste uses the selection's context; code is literal and paragraph edges remain open. */ export declare function arkmePasteMarkdown(editor: Editor, source: string): void; /** Repair drafts saved when standalone inline images lost their paragraph. */ export declare function arkmeNormalizeArticleDocument(document: JSONContent): JSONContent; export declare function arkmeMarkdownExtensions(options?: { articleImages?: boolean; }): (Extension | Node | Extension | Node | Extension | Node | Extension)[]; /** Reuse editor transactions/history without enabling Markdown, tags, links, or mentions. */ export declare function arkmeTextExtensions(): (Node | Extension)[]; /** Shift+Enter is our paragraph break, so it must also complete the opening code fence. */ export declare function arkmeCompleteMarkdownCodeFence(editor: Editor): boolean; /** Completing a GFM delimiter row converts the two paragraphs in one undoable transaction. */ export declare function arkmeCompleteMarkdownTable(editor: Editor): boolean; /** A visible-text coordinate space for the existing pickers, never used as a wire mention offset. */ export declare function arkmeEditorProjection(doc: ProseMirrorNode): { text: string; positions: number[]; mentions: ArkmeComposerMention[]; emojis: ArkmeComposerEmoji[]; indexAt: (position: number) => number; }; export declare function arkmeEditorInlineContent(text: string, mentions: readonly ArkmeComposerMention[], emojis: readonly ArkmeComposerEmoji[], offset?: number): JSONContent[]; export declare function arkmePlainEditorDocument(text: string, mentions?: readonly ArkmeComposerMention[], emojis?: readonly ArkmeComposerEmoji[]): JSONContent; /** Serialize first, then locate each atom in the final UTF-16 Markdown source. */ export declare function arkmeSerializeMarkdownEditor(editor: Editor, document?: import("@tiptap/core").DocumentType | undefined, import("@tiptap/core").NodeType | undefined, any, (import("@tiptap/core").NodeType | import("@tiptap/core").TextType>)[]>[]>): ArkmeMarkdownDraft; //# sourceMappingURL=markdown-editor.d.ts.map