/** * Core registry module. * * Purpose: Maintains a registry mapping editorId → editor context. * Replaces the singleton pattern from legacy Plugin class with a proper registry. * * Key responsibilities: * - Register editor instances with their configuration * - Retrieve editor contexts by ID * - Unregister editors when they're destroyed * - Extract editor IDs from editor instances * * Dependencies: types/common.ts, core/state.ts, adapters/host/doc.ts */ import type { EditorContext, ExtensionConfig } from '@/types/common'; /** * Registers an editor instance in the registry. * Creates initial state for the editor. * * @param editorId Unique identifier for the editor * @param editor The editor instance * @param config Extension configuration options * @returns EditorContext for the registered editor */ export declare const registerEditor: (editorId: string, editor: TEditor, config?: ExtensionConfig) => EditorContext; /** * Retrieves the editor context for a given editor ID. * * @param editorId Unique identifier for the editor * @returns EditorContext or null if not found */ export declare const getEditorContext: (editorId: string) => EditorContext | null; /** * Unregisters an editor from the registry and cleans up its state. * * @param editorId Unique identifier for the editor */ export declare const unregisterEditor: (editorId: string) => void; /** * Extracts the editor ID from an editor instance. * Checks editor storage first, then DOM attributes. * * @param editor The editor instance * @returns Editor ID or null if not found */ export declare const getEditorIdFromEditor: (editor: unknown) => string | null; /** * Gets all registered editor IDs. * * @returns Array of editor IDs */ export declare const getAllEditorIds: () => string[];