/**
 * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
 * For licensing, see LICENSE.md.
 */
import { type Dispatch, type SetStateAction } from 'react';
import type { WatchdogConfig } from '@ckeditor/ckeditor5-watchdog/src/watchdog';
import type MultiRootEditor from '@ckeditor/ckeditor5-build-multi-root';
import type EventInfo from '@ckeditor/ckeditor5-utils/src/eventinfo';
declare const useMultiRootEditor: (props: MultiRootHookProps) => MultiRootHookReturns;
export default useMultiRootEditor;
interface ErrorDetails {
    phase: 'initialization' | 'runtime';
    willEditorRestart?: boolean;
}
export type MultiRootHookProps = {
    isLayoutReady?: boolean;
    disabled?: boolean;
    data: Record<string, string>;
    rootsAttributes?: Record<string, Record<string, unknown>>;
    editor: typeof MultiRootEditor;
    watchdogConfig?: WatchdogConfig;
    disableWatchdog?: boolean;
    disableTwoWayDataBinding?: boolean;
    onReady?: (editor: MultiRootEditor) => void;
    onError?: (error: Error, details: ErrorDetails) => void;
    onChange?: (event: EventInfo, editor: MultiRootEditor) => void;
    onFocus?: (event: EventInfo, editor: MultiRootEditor) => void;
    onBlur?: (event: EventInfo, editor: MultiRootEditor) => void;
    config?: Record<string, unknown>;
};
export type MultiRootHookReturns = {
    editor: MultiRootEditor | null;
    editableElements: Array<JSX.Element>;
    toolbarElement: JSX.Element;
    data: Record<string, string>;
    setData: Dispatch<SetStateAction<Record<string, string>>>;
    attributes: Record<string, Record<string, unknown>>;
    setAttributes: Dispatch<SetStateAction<Record<string, Record<string, unknown>>>>;
};
