///
import type { Disposable } from '@difizen/mana-common';
import { DisposableCollection } from '@difizen/mana-common';
import { CommandRegistry, MenuRegistry, ToolbarItem, ToolbarRegistry } from '@difizen/mana-core';
import type { ToolbarItemState } from './toolbar-protocol';
/**
* Factory for instantiating toolbars.
*/
export declare const ToolbarFactory: unique symbol;
export interface ToolbarFactory {
(): Toolbar;
}
export interface ToolbarOption {
divider?: 'item' | 'group';
}
/**
* The toolbar manager, a toolbar instance should be created with view.
*/
export declare class Toolbar implements Disposable {
protected toDispose: DisposableCollection;
protected _disposed: boolean;
get disposed(): boolean;
get onDispose(): import("@difizen/mana-common").Event;
currentArgs: any | any[];
states: Map;
tooltip?: {
placement: string;
} | undefined;
protected readonly commands: CommandRegistry;
protected readonly menus: MenuRegistry;
protected readonly toolbarRegistry: ToolbarRegistry;
constructor(commands: CommandRegistry, menus: MenuRegistry, toolbarRegistry: ToolbarRegistry);
setCurrentArgs(current: any): void;
sort(left: ToolbarItem, right: ToolbarItem): number;
get visibleItems(): ToolbarItem[];
isInline(item: ToolbarItem): boolean;
renderToolbar(inlines: ToolbarItem[], more: ToolbarItem[]): import("react/jsx-runtime").JSX.Element;
renderMore(items: ToolbarItem[]): React.ReactNode;
renderInlineDivider(key: string | undefined): import("react/jsx-runtime").JSX.Element;
renderInlines(items: ToolbarItem[]): React.ReactNode;
renderItem(data: any, item: ToolbarItem, state: ToolbarItemState): React.ReactNode;
protected getItemProps(_data: any, _item: ToolbarItem, state: ToolbarItemState): {
className: string;
};
protected renderItemContent(data: any, item: ToolbarItem, state: ToolbarItemState): import("react/jsx-runtime").JSX.Element;
protected execute(item: ToolbarItem, data: any[]): Promise | undefined;
getState: (item: ToolbarItemState | ToolbarItem) => ToolbarItemState | undefined;
setState: (item: ToolbarItemState) => void;
dispose(): void;
}
//# sourceMappingURL=toolbar.d.ts.map