import { Event } from '../../../common/event.js';
import { IContextMenuProvider } from '../../contextmenu.js';
import { ActionBar, ActionsOrientation, IActionViewItemProvider } from '../actionbar/actionbar.js';
import { AnchorAlignment } from '../contextview/contextview.js';
import { IActionRunner, IAction } from '../../../common/actions.js';
import { ThemeIcon } from '../../../common/themables.js';
import { ResolvedKeybinding } from '../../../common/keybindings.js';
import { Disposable } from '../../../common/lifecycle.js';
import { IHoverDelegate } from '../hover/hoverDelegate.js';

interface IToolBarOptions {
    orientation?: ActionsOrientation;
    actionViewItemProvider?: IActionViewItemProvider;
    ariaLabel?: string;
    getKeyBinding?: (action: IAction) => ResolvedKeybinding | undefined;
    actionRunner?: IActionRunner;
    toggleMenuTitle?: string;
    anchorAlignmentProvider?: () => AnchorAlignment;
    renderDropdownAsChildElement?: boolean;
    moreIcon?: ThemeIcon;
    allowContextMenu?: boolean;
    skipTelemetry?: boolean;
    hoverDelegate?: IHoverDelegate;
    /**
     * If true, toggled primary items are highlighted with a background color.
     */
    highlightToggledItems?: boolean;
}
/**
 * A widget that combines an action bar for primary actions and a dropdown for secondary actions.
 */
declare class ToolBar extends Disposable {
    private options;
    protected readonly actionBar: ActionBar;
    private toggleMenuAction;
    private toggleMenuActionViewItem;
    private submenuActionViewItems;
    private hasSecondaryActions;
    private readonly lookupKeybindings;
    private readonly element;
    private _onDidChangeDropdownVisibility;
    readonly onDidChangeDropdownVisibility: Event<boolean>;
    private disposables;
    constructor(container: HTMLElement, contextMenuProvider: IContextMenuProvider, options?: IToolBarOptions);
    set actionRunner(actionRunner: IActionRunner);
    get actionRunner(): IActionRunner;
    set context(context: unknown);
    getElement(): HTMLElement;
    focus(): void;
    getItemsWidth(): number;
    getItemAction(indexOrElement: number | HTMLElement): IAction | undefined;
    getItemWidth(index: number): number;
    getItemsLength(): number;
    setAriaLabel(label: string): void;
    setActions(primaryActions: ReadonlyArray<IAction>, secondaryActions?: ReadonlyArray<IAction>): void;
    isEmpty(): boolean;
    private getKeybindingLabel;
    private clear;
    dispose(): void;
}

export { type IToolBarOptions, ToolBar };
