/**
 * @license
 * Copyright 2025 Sandlada & Kai Orion
 * SPDX-License-Identifier: MIT
 */
import { type Component, type Ref } from 'vue';
import type { JSX } from 'vue/jsx-runtime';
export interface INavigation {
    getTabElements(): Array<HTMLElement>;
    getActiveTabElement(): HTMLElement | null;
    setActiveTabByLabel: (label: string) => void;
    setActiveTabByOrder: (order: number) => void;
    setActiveTabByElement: (element: HTMLElement) => void;
}
export interface INavigationItem {
    label: string;
    href?: string;
    disabled?: boolean;
    hide?: boolean;
    icon?: JSX.Element | Component;
    hideInactiveLabel?: boolean;
}
interface IUseNavigableOptions {
    tabs: Array<INavigationItem>;
    hideInactiveLabel?: boolean;
    defaultActiveTabOrder?: number;
    handleChange?: (e: Event) => void;
}
export declare const SNavigableController: unique symbol;
export interface INavigableHost extends HTMLElement {
    [SNavigableController]: INavigation;
}
export declare function useNavigable(hostRef: Ref<HTMLElement | null>, options: IUseNavigableOptions): INavigation;
export {};
//# sourceMappingURL=use-navigable.d.ts.map