/** @packageDocumentation
 * @module Toolbar
 */
import * as React from "react";
import { ActionButton, GroupButton, OnItemExecutedFunc } from "@itwin/appui-abstract";
import { CommonProps } from "@itwin/core-react";
interface ToolGroupItem {
    trayId?: string;
    item: ActionButton | GroupButton;
}
interface ToolGroupTray {
    title?: string;
    items: Map<string, ToolGroupItem>;
    groupItem: GroupButton;
}
declare type ToolGroupTrayMap = Map<string, ToolGroupTray>;
interface ToolbarGroupItemComponentProps extends CommonProps {
    groupItem: GroupButton;
    onItemExecuted?: OnItemExecutedFunc;
}
interface ToolbarGroupItemState {
    activeItemId: string;
    activeToolId: string;
    groupItem: GroupButton;
    trayId: string;
    backTrays: ReadonlyArray<string>;
    trays: ToolGroupTrayMap;
    isEnabled: boolean;
    isPressed: boolean;
    isVisible: boolean;
}
/** Group Item React component.
 * @internal
 */
export declare class ToolbarGroupItemComponent extends React.Component<ToolbarGroupItemComponentProps, ToolbarGroupItemState> {
    /** @internal */
    readonly state: Readonly<ToolbarGroupItemState>;
    private _trayIndex;
    private _closeOnPanelOpened;
    private _ref;
    constructor(props: ToolbarGroupItemComponentProps);
    componentDidMount(): void;
    componentWillUnmount(): void;
    private getGroupItemState;
    private resetTrayId;
    private generateTrayId;
    private processGroupItem;
    componentDidUpdate(prevProps: ToolbarGroupItemComponentProps, _prevState: ToolbarGroupItemState): void;
    private get _tray();
    private getTray;
    render(): React.ReactNode;
    private _handleOpenPanel;
    private _handleClick;
    private _handleDragInteractionClick;
    private _handleDragInteractionOutsideClick;
    private _handleOutsideClick;
    private _handleToolActivatedEvent;
    private _handleToolPanelOpenedEvent;
    private closeGroupButton;
    private handleToolGroupItemClicked;
    private getItemsInColumn;
    private getGroupTray;
    getItemById(id: string): ActionButton | GroupButton | undefined;
    private _handleBack;
    private _handleExpanderClick;
}
/** Action button props
 *  @internal
 */
interface GroupButtonProps {
    item: GroupButton;
    onItemExecuted?: OnItemExecutedFunc;
}
/** Group Button React component
 * @internal
 */
export declare function GroupButtonItem(props: GroupButtonProps): JSX.Element;
export {};
//# sourceMappingURL=GroupButtonItem.d.ts.map