import { Editor } from 'slate';
import { ControlInstance, Slate, type BoxModel, type DataType, type SendMessage, type Data } from '@makeswift/controls';
import { RichTextV2Definition } from './rich-text-v2';
type ResetValueMessage = {
    type: typeof RichTextV2Control.RESET_VALUE;
};
type FocusMessage = {
    type: typeof RichTextV2Control.FOCUS;
};
type RunPluginControlActionMessage = {
    type: typeof RichTextV2Control.RUN_PLUGIN_CONTROL_ACTION;
    pluginIndex: number;
    value: Data;
};
type SetDefaultValueMessage = {
    type: typeof RichTextV2Control.SET_DEFAULT_VALUE;
    value: Slate.Descendant[];
};
type SetPluginControlValueMessage = {
    type: typeof RichTextV2Control.SET_PLUGIN_CONTROL_VALUE;
    value: Data[];
};
type OnChangeMessage = {
    type: typeof RichTextV2Control.ON_CHANGE;
    value: DataType<RichTextV2Definition>;
};
type SelectMessage = {
    type: typeof RichTextV2Control.SELECT;
};
type SwitchToBuildModeMessage = {
    type: typeof RichTextV2Control.SWITCH_TO_BUILD_MODE;
};
type ChangeBoxModelMessage = {
    type: typeof RichTextV2Control.CHANGE_BOX_MODEL;
    payload: {
        boxModel: BoxModel | null;
    };
};
type UndoMessage = {
    type: typeof RichTextV2Control.UNDO;
};
type RedoMessage = {
    type: typeof RichTextV2Control.REDO;
};
type Message = ResetValueMessage | FocusMessage | RunPluginControlActionMessage | SetDefaultValueMessage | SetPluginControlValueMessage | OnChangeMessage | SelectMessage | SwitchToBuildModeMessage | ChangeBoxModelMessage | UndoMessage | RedoMessage;
export declare class RichTextV2Control extends ControlInstance<Message> {
    private readonly descriptor;
    private static readonly messagePrefix;
    static readonly RESET_VALUE: "makeswift::controls::rich-text-v2::control-message::reset-value";
    static readonly FOCUS: "makeswift::controls::rich-text-v2::control-message::focus";
    static readonly RUN_PLUGIN_CONTROL_ACTION: "makeswift::controls::rich-text-v2::control-message::run-plugin-control-action";
    static readonly SET_DEFAULT_VALUE: "makeswift::controls::rich-text-v2::control-message::set-default-value";
    static readonly SET_PLUGIN_CONTROL_VALUE: "makeswift::controls::rich-text-v2::control-message::set-plugin-control-value";
    static readonly ON_CHANGE: "makeswift::controls::rich-text-v2::control-message::on-change";
    static readonly SELECT: "makeswift::controls::rich-text-v2::control-message::select";
    static readonly SWITCH_TO_BUILD_MODE: "makeswift::controls::rich-text-v2::control-message::switch-to-build-mode";
    static readonly CHANGE_BOX_MODEL: "makeswift::controls::rich-text-v2::control-message::change-box-model";
    static readonly REDO: "makeswift::controls::rich-text-v2::control-message::redo";
    static readonly UNDO: "makeswift::controls::rich-text-v2::control-message::undo";
    private editor;
    private defaultValue;
    constructor(send: SendMessage<Message>, descriptor: RichTextV2Definition);
    recv: (message: Message) => void;
    child(_key: string): ControlInstance | undefined;
    setEditor(editor: Editor): void;
    setDefaultValue(defaultValue: Slate.Descendant[]): void;
    onLocalUserChange(): void;
    updatePluginValues(): void;
    getValue(editor: Editor): (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | {
        [key: string]: string | number | boolean | /*elided*/ any | /*elided*/ any | null | undefined;
    } | null | undefined)[] | {
        [key: string]: string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined;
    } | null | undefined)[] | {
        [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined;
    } | null | undefined)[] | {
        [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined;
    } | null | undefined)[] | {
        [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined;
    } | null | undefined)[] | {
        [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined;
    } | null | undefined)[] | {
        [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined;
    } | null | undefined)[] | {
        [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined;
    } | null | undefined)[] | {
        [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined;
    } | null | undefined)[] | {
        [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined;
    } | null | undefined)[] | {
        [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined;
    } | null | undefined)[] | {
        [key: string]: string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | (string | number | boolean | /*elided*/ any | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined)[] | /*elided*/ any | null | undefined;
    } | null | undefined)[];
    select(): void;
    switchToBuildMode(): void;
    undo(): void;
    redo(): void;
    changeBoxModel(boxModel: BoxModel | null): void;
}
export {};
//# sourceMappingURL=control.d.ts.map