import { ViewerType } from '../viewer';
import { ToolbarItem, ToolbarItemType } from '.';
import { Dispatcher } from '../bus';
export type ToolbarOptions = {
    container?: HTMLDivElement;
    toolbar?: string[];
};
export declare class Toolbar extends Dispatcher {
    readonly viewer: ViewerType;
    readonly options?: ToolbarOptions | undefined;
    readonly container: HTMLDivElement;
    protected readonly list: Map<string, ToolbarItemType>;
    protected readonly _items: Set<ToolbarItem>;
    constructor(viewer: ViewerType, options?: ToolbarOptions | undefined);
    get rootContainer(): HTMLElement;
    get eventBus(): import('../bus').EventBus<Record<string, import('../bus').ListenerCallback>, string>;
    get items(): Set<ToolbarItem>;
    register(name: string, item: ToolbarItemType): void;
    protected createGroups(): Set<ToolbarItem>[];
    protected getValidNames(groupConfig: string): string[];
    resolveToolbarItem(name: string): ToolbarItem | undefined;
    initialize(): Promise<void>;
    hide(): void;
    show(): void;
    render(): HTMLDivElement;
    terminate(): Promise<void>;
}
