/** * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved. * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options */ import { type Dispatch, type SetStateAction, type JSX } from 'react'; import type { WatchdogConfig, MultiRootEditor, EventInfo } from 'ckeditor5'; import { type RootEditableOptionsAttribute } from './EditorEditable.js'; import type { EditorErrorDetails } from '../ckeditor.js'; export declare const useMultiRootEditor: (props: MultiRootHookProps) => MultiRootHookReturns; export type AddRootOptions = { name: string; data?: string; attributes?: Record; isUndoable?: boolean; modelElement?: string; editableOptions?: RootEditableOptionsAttribute; [key: string]: unknown; }; export type MultiRootHookProps = { id?: any; semaphoreElement?: HTMLElement; isLayoutReady?: boolean; disabled?: boolean; data: Record; rootsAttributes?: Record>; editor: typeof MultiRootEditor; watchdogConfig?: WatchdogConfig; disableWatchdog?: boolean; disableTwoWayDataBinding?: boolean; onReady?: (editor: MultiRootEditor) => void; onAfterDestroy?: (editor: MultiRootEditor) => void; onError?: (error: Error, details: EditorErrorDetails) => void; onChange?: (event: EventInfo, editor: MultiRootEditor) => void; onFocus?: (event: EventInfo, editor: MultiRootEditor) => void; onBlur?: (event: EventInfo, editor: MultiRootEditor) => void; config?: Record; }; export type MultiRootHookReturns = { editor: MultiRootEditor | null; editableElements: Array; toolbarElement: JSX.Element; data: Record; setData: Dispatch>>; attributes: Record>; setAttributes: Dispatch>>>; addRoot: (options: AddRootOptions) => Promise; removeRoot: (name: string) => Promise; };