import type { LexicalEditor, SerializedEditorState } from 'lexical';
import type { HeadlessEditorOptions } from './types';
/**
 * Create a headless Lexical editor instance (no DOM mounting).
 * Useful for server-side rendering, testing, or programmatic content manipulation.
 *
 * @example
 * ```ts
 * const editor = await createHeadlessEditor({
 *   nodes: [MyCustomNode],
 *   plugins: [myPlugin],
 * })
 *
 * editor.update(() => {
 *   const root = $getRoot()
 *   root.clear()
 *   // ... manipulate content
 * })
 *
 * const json = editor.getEditorState().toJSON()
 * ```
 */
export declare function createHeadlessEditor(options?: HeadlessEditorOptions): Promise<LexicalEditor>;
/**
 * Convert markdown string to Lexical JSON using a headless editor.
 */
export declare function markdownToLexicalJson(markdown: string): Promise<SerializedEditorState>;
/**
 * Convert Lexical JSON to markdown string using a headless editor.
 */
export declare function lexicalJsonToMarkdown(json: SerializedEditorState): Promise<string>;
/**
 * Convert HTML string to Lexical JSON using a headless editor.
 */
export declare function htmlToLexicalJson(html: string): Promise<SerializedEditorState>;
/**
 * Convert Lexical JSON to HTML string using a headless editor.
 */
export declare function lexicalJsonToHtml(json: SerializedEditorState): Promise<string>;
