import * as React from 'react';
import { Editor } from 'slate';
import { EditorProps } from 'slate-react';
import { TextPlugin } from '..';
import { SlatePluginClosure } from '../factory/types';
export declare enum VisibleControls {
    All = 0,
    Headings = 1,
    Lists = 2,
    Colors = 3
}
export interface ControlProps {
    editor: Editor;
    name: string;
    pluginClosure: SlatePluginClosure;
    readOnly?: boolean;
}
export interface SubControlProps extends ControlProps {
    switchControls: (control: VisibleControls) => void;
    onChange: (editor: Editor) => Editor;
}
export interface UiPluginOptions {
    Component: React.ComponentType<Partial<EditorProps> & ControlProps>;
}
export declare const Controls: React.FunctionComponent<ControlProps>;
export declare const createUiPlugin: (options: UiPluginOptions) => (pluginClosure: React.RefObject<{
    overlayContext: import("@edtr-io/core/src").OverlayContextValue;
    name: string;
    parent?: import("../factory/editor").SlateEditorAdditionalProps | undefined;
}>) => TextPlugin;
//# sourceMappingURL=index.d.ts.map