import type { IEditorQuery } from '../ricos-content-query/index.js';
import type { ModalService } from '../ricos-modals/index.js';
import type { IToolbarItem, PublicCommands, RicosServices } from '../ricos-types/index.js';
import type { Editor } from '../tiptap/react';
import { EventEmitter } from './lib/event-emitter.js';
import type { IToolbarItemConfig } from './types.js';
export declare class ToolbarItemCreator {
    static create(toolbarItemConfig: IToolbarItemConfig): (content: RicosServices['content'], tiptapEditor: Editor, editorQuery: IEditorQuery, modalService: ModalService, publicCommands: PublicCommands) => ToolbarItem;
}
export declare class ToolbarItem extends EventEmitter implements IToolbarItem {
    private toolbarItemConfig;
    private content;
    private tiptapEditor;
    private editorQuery;
    private modalService;
    private publicCommands;
    static EVENTS: {
        readonly ATTRIBUTES_CHANGED: 'ATTRIBUTES_CHANGED';
        readonly COMMAND_EXECUTED: 'COMMAND_EXECUTED';
    };
    private toolbarItem;
    constructor(toolbarItemConfig: IToolbarItemConfig, content: RicosServices['content'], tiptapEditor: Editor, editorQuery: IEditorQuery, modalService: ModalService, publicCommands: PublicCommands);
    setup(): void;
    destroy(): void;
    assignCommands(): void;
    updateAttributes(): void;
    private getAttributes;
    get id(): string;
    get presentation(): Record<string, any>;
    get attributes(): Record<string, any>;
    get commands(): Record<string, (...args: any) => any>;
    get type(): "color" | "custom" | "dropdown" | "modal" | "separator" | "toggle";
}
//# sourceMappingURL=toolbar-item-creator.d.ts.map