Current section
Files
Jump to
Current section
Files
dist/src/hooks/editor/editors-registry.d.ts
import { Editor } from 'ckeditor5';
import { EditorId } from './typings';
/**
* Allows other hooks to communicate with specific editors.
* It provides a way to register editors and execute callbacks on them when they are available.
*/
export declare class EditorsRegistry {
static readonly the: EditorsRegistry;
/**
* Map of registered editors.
*/
private readonly editors;
/**
* Map of callbacks that are waiting for an editor to be registered.
*/
private readonly callbacks;
/**
* Private constructor to enforce singleton pattern.
*/
private constructor();
/**
* Executes a function on an editor.
* If the editor is not yet registered, it will wait for it to be registered.
*
* @param editorId The ID of the editor.
* @param fn The function to execute.
* @returns A promise that resolves with the result of the function.
*/
execute<T, E extends Editor = Editor>(editorId: EditorId | null, fn: (editor: E) => T): Promise<Awaited<T>>;
/**
* Registers an editor.
*
* @param editorId The ID of the editor.
* @param editor The editor instance.
*/
register(editorId: EditorId | null, editor: Editor): void;
/**
* Un-registers an editor.
*
* @param editorId The ID of the editor.
*/
unregister(editorId: EditorId | null): void;
/**
* Gets all registered editors.
*/
getEditors(): Editor[];
/**
* Checks if an editor with the given ID is registered.
*
* @param editorId The ID of the editor.
* @returns `true` if the editor is registered, `false` otherwise.
*/
hasEditor(editorId: EditorId | null): boolean;
/**
* Gets a promise that resolves with the editor instance for the given ID.
* If the editor is not registered yet, it will wait for it to be registered.
*
* @param editorId The ID of the editor.
* @returns A promise that resolves with the editor instance.
*/
waitForEditor<E extends Editor>(editorId: EditorId | null): Promise<E>;
/**
* Destroys all registered editors and clears the registry.
* This will call the `destroy` method on each editor.
*/
destroyAllEditors(): Promise<void>;
}
//# sourceMappingURL=editors-registry.d.ts.map