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: Map<string, ToolbarItem>;
    constructor(viewer: ViewerType, options?: ToolbarOptions | undefined);
    get rootContainer(): HTMLElement;
    get eventBus(): import('../bus').EventBus<Record<string, import('../bus').ListenerCallback>, string>;
    get items(): Map<string, ToolbarItem>;
    register(name: string, item: ToolbarItemType): void;
    protected createGroups(): Map<string, ToolbarItem>[];
    protected getValidKeys(groupConfig: string): string[];
    protected resolveToolbarItem(key: string): ToolbarItem;
    initialize(): Promise<void>;
    render(): HTMLDivElement;
    terminate(): Promise<void>;
}
