/**
 * @license
 *-------------------------------------------------------------------------------------------
 * Copyright © 2026 Progress Software Corporation. All rights reserved.
 * Licensed under commercial license. See LICENSE.md in the package root for more information
 *-------------------------------------------------------------------------------------------
 */
import { PropType } from 'vue';
import { ToolbarResizeEvent } from './interfaces/ToolbarProps';
/**
 * @hidden
 */
export interface ToolbarComputed {
    [key: string]: any;
    selectors: string[];
    wrapperClass: object;
}
/**
 * @hidden
 */
export interface ToolbarMethods {
    [key: string]: any;
    focusedIndex: () => number;
    getCurrentButtons: () => HTMLElement[];
    onKeyDown: (e: any) => void;
    onWindowResize: (e: any) => void;
    focusButton: (current: number, next: number) => void;
    setTabIndex: (index: number) => void;
    getInternalButtons: () => HTMLElement[];
}
/**
 * @hidden
 */
declare const Toolbar: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
    tabIndex: {
        type: PropType<number>;
        default: number;
    };
    dir: {
        type: PropType<string>;
        validator: (value: any) => any;
        default: string;
    };
    keyboardNavigation: {
        type: PropType<boolean>;
        default: boolean;
    };
    buttons: {
        type: PropType<string[]>;
        default: () => any;
    };
    size: {
        type: PropType<"small" | "medium" | "large">;
        validator: (value: string) => boolean;
    };
    fillMode: {
        type: PropType<"flat" | "solid" | "outline">;
        validator: (value: string) => boolean;
    };
    ariaLabel: PropType<string>;
    overflow: {
        type: PropType<"section" | "none" | "scroll">;
        default: string;
        validator: (value: any) => any;
    };
    scrollButtons: {
        type: PropType<"hidden" | "auto" | "visible">;
        default: string;
        validator: (value: any) => any;
    };
    scrollButtonsPosition: {
        type: PropType<"split" | "start" | "end">;
        default: string;
        validator: (value: any) => any;
    };
    buttonScrollSpeed: {
        type: PropType<number>;
        default: number;
    };
}>, {}, {
    defaultSlot: any;
    offsetWidth: number;
    offsetHeight: number;
    currentButtons: HTMLElement[];
    focusedSelector: string;
    isScrollStartPosition: boolean;
    isScrollEndPosition: boolean;
    focusableButtons: any[];
    isOverflowing: boolean;
    scrollContentRef: any;
    lastToolbarWidthRef: number;
    overFlowToolsRef: any[];
    overFlowOpened: boolean;
    visibleToolsRef: any;
}, {
    selectors(): ToolbarComputed['selectors'];
    wrapperClass(): ToolbarComputed['wrapperClass'];
}, {
    getCurrentButtons(): HTMLElement[];
    getInternalButtons(): HTMLElement[];
    focusedIndex(): number;
    setTabIndex(focusedIndex: number): void;
    onKeyDown(event: any): void;
    focusButton(prevIndex: number, index: number): void;
    initOverflow(toolbarRef: any, totalInnerWidth: any): void;
    checkOverflow(): void;
    onWindowResize(event: any): void;
    onContentScroll(buttonClicked: any): void;
    onToggleoverflow(opened: boolean): void;
}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    resize: (event: ToolbarResizeEvent) => true;
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
    tabIndex: {
        type: PropType<number>;
        default: number;
    };
    dir: {
        type: PropType<string>;
        validator: (value: any) => any;
        default: string;
    };
    keyboardNavigation: {
        type: PropType<boolean>;
        default: boolean;
    };
    buttons: {
        type: PropType<string[]>;
        default: () => any;
    };
    size: {
        type: PropType<"small" | "medium" | "large">;
        validator: (value: string) => boolean;
    };
    fillMode: {
        type: PropType<"flat" | "solid" | "outline">;
        validator: (value: string) => boolean;
    };
    ariaLabel: PropType<string>;
    overflow: {
        type: PropType<"section" | "none" | "scroll">;
        default: string;
        validator: (value: any) => any;
    };
    scrollButtons: {
        type: PropType<"hidden" | "auto" | "visible">;
        default: string;
        validator: (value: any) => any;
    };
    scrollButtonsPosition: {
        type: PropType<"split" | "start" | "end">;
        default: string;
        validator: (value: any) => any;
    };
    buttonScrollSpeed: {
        type: PropType<number>;
        default: number;
    };
}>> & Readonly<{
    onResize?: (event: ToolbarResizeEvent) => any;
}>, {
    dir: string;
    tabIndex: number;
    overflow: "section" | "none" | "scroll";
    keyboardNavigation: boolean;
    buttons: string[];
    buttonScrollSpeed: number;
    scrollButtons: "hidden" | "auto" | "visible";
    scrollButtonsPosition: "split" | "start" | "end";
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
export { Toolbar };
