/**
 * LionTabs: A tabbed interface component
 *
 * @slot tab - The tab elements for the tabs
 * @slot panel - The panel elements for the tabs
 *
 * @customElement lion-tabs
 */
export class LionTabs extends LitElement {
    static get properties(): {
        selectedIndex: {
            type: NumberConstructor;
            attribute: string;
            reflect: boolean;
        };
    };
    static get styles(): import("lit").CSSResult[];
    /**
     * // TODO: check if this is a false positive or if we can improve
     * @configure ReactiveElement
     */
    static enabledWarnings: import("lit").WarningKind[];
    render(): import("lit-html").TemplateResult<1>;
    /**
     * @param {number} value The new index
     */
    set selectedIndex(arg: number);
    /**
     * @return {number}
     */
    get selectedIndex(): number;
    get tabs(): HTMLButtonElement[];
    get panels(): HTMLElement[];
    /** @private */
    private __setupSlots;
    /** @private */
    private __setupStore;
    /** @type {StoreEntry[]} */
    __store: StoreEntry[] | undefined;
    /** @private */
    private __cleanStore;
    /**
     * @param {HTMLButtonElement[]} tabs
     * @param {HTMLButtonElement} currentTab
     * @param {'right' | 'left'} dir
     * @returns {HTMLButtonElement|undefined}
     * @private
     */
    private __getNextNotDisabledTab;
    /**
     * @param {number} newIndex
     * @param {string} direction
     * @returns {number}
     * @private
     */
    private __getNextAvailableIndex;
    /**
     * @param {number} index
     * @returns {(event: Event) => unknown}
     * @private
     */
    private __createButtonClickHandler;
    /**
     * @param {Event} ev
     * @private
     */
    private __handleButtonKeyup;
    /** @type {number | undefined} */
    __selectedIndex: number | undefined;
    /**
     * @param {number} value The new index for focus
     * @protected
     */
    protected _setSelectedIndexWithFocus(value: number): void;
    /** @protected */
    protected get _pairCount(): number;
    /** @private */
    private __updateSelected;
}
export type StoreEntry = {
    /**
     * Dom Element
     */
    el: HTMLElement;
    /**
     * Unique ID for the entry
     */
    uid: string;
    /**
     * Button HTMLElement for the entry
     */
    button: HTMLElement;
    /**
     * Panel HTMLElement for the entry
     */
    panel: HTMLElement;
    /**
     * executed on click event
     */
    clickHandler: (event: Event) => unknown;
    /**
     * executed on keydown event
     */
    keydownHandler: (event: Event) => unknown;
    /**
     * executed on keyup event
     */
    keyupHandler: (event: Event) => unknown;
};
import { LitElement } from "lit";
//# sourceMappingURL=LionTabs.d.ts.map