export declare enum BaseToolbarType {
    HEADING = "heading",
    HEADING_1 = "heading-1",
    HEADING_2 = "heading-2",
    HEADING_3 = "heading-3",
    HEADING_4 = "heading-4",
    HEADING_5 = "heading-5",
    HEADING_6 = "heading-6",
    BOLD = "bold",
    ITALIC = "italic",
    UNDERLINE = "underline",
    DELETE = "delete",
    LINE = "line",
    BLOCKQUOTE = "blockquote",
    UL = "ul",
    OL = "ol",
    INLINECODE = "inlinecode",
    CODE = "code",
    LINK = "link",
    IMAGE = "image",
    IMAGE_LINK = "image-link",
    IMAGE_UPLOAD = "image-upload",
    TABLE = "table",
    UNDO = "undo",
    REDO = "redo",
    FULLSCREEN = "fullscreen",
    WRITE = "write",
    PREVIEW = "preview",
    CONTENTS = "contents",
    HELP = "help",
    OUTPUT = "output",
    EMOJI = "emoji",
    SAVE = "save"
}
export type ExtendedToolbarType = string;
export type ToolbarType = BaseToolbarType | ExtendedToolbarType;
export interface BaseToolbarItem {
    type: ToolbarType;
    icon?: string;
    title?: string;
    description?: string;
    disabled?: boolean;
    visible?: boolean;
    onClick?: () => void;
    component?: React.ReactNode;
}
export interface ToolbarItemListItem {
    title?: string;
    type: string;
    hotkey?: {
        command: string;
        description: string;
        handle?: () => void;
    };
    onClick?: (...args: any[]) => void | (() => void);
}
export interface ToolbarItem extends BaseToolbarItem {
    list?: ToolbarItemListItem[];
    hotkey?: {
        command: string;
        description: string;
        handle?: () => void;
    };
}
export interface ToolbarContextValues {
    toolbars: ToolbarItem[];
    addToolbar?: (toolbarItem: ToolbarItem) => void;
    removeToolbar?: (type: ToolbarType) => void;
    updateToolbar?: (type: ToolbarType, newConfig: Partial<ToolbarItem>) => void;
    reorderToolbars?: (newOrder: ToolbarType[]) => void;
}
export declare enum ToolbarEvents {
    TOOLBAR_ADDED = "toolbar:added",
    TOOLBAR_REMOVED = "toolbar:removed",
    TOOLBAR_UPDATED = "toolbar:updated",
    TOOLBAR_REORDERED = "toolbar:reordered",
    TOOLBAR_RESET = "toolbar:reset",
    TOOLBAR_ERROR = "toolbar:error",
    METHOD_REGISTERED = "method:registered",
    METHOD_UNREGISTERED = "method:unregistered",
    beforeDestroy = "beforeDestroy",
    destroy = "destroy"
}
export declare const isBaseToolbarType: (type: ToolbarType) => type is BaseToolbarType;
export interface ToolbarValidationResult {
    isValid: boolean;
    errors: string[];
}
export declare const validateToolbarItem: (item: ToolbarItem) => ToolbarValidationResult;
