import { Ref } from 'vue';
import { KdsTabBarItem } from './types';
/**
 * Adapts the tab bar layout when space is constrained:
 *
 * 1. **Icon hiding**: icons are removed first to free up space for labels.
 * 2. **Ellipsis**: labels shrink down to `min(natural label width, minTabWidth)`,
 *    showing an ellipsis when they are larger.
 */
export declare const useTabBarAdaptiveLayout: ({ width, tabs, containerEl, fullWidth, minTabWidth, }: {
    /**
     * Potentially available width to render tabs
     */
    width: Ref<number>;
    tabs: Ref<readonly KdsTabBarItem[]>;
    /**
     * Container element that holds the tab items.
     * Used to determine whether the tab bar overflows horizontally.
     */
    containerEl: Ref<HTMLElement | null>;
    /**
     * Whether the tab bar is in full-width mode.
     * When true, per-tab min-width adjustments are skipped.
     */
    fullWidth?: Ref<boolean>;
    /**
     * CSS custom property name for the minimum tab width (e.g. "--kds-dimension-component-width-4x").
     * Used both for CSS min-width (via v-bind) and as the measurement floor.
     * When omitted, per-tab min-width adjustments are skipped.
     */
    minTabWidth?: string;
}) => {
    shouldHideIcons: import('vue').ComputedRef<boolean>;
    setItemEl: (key: string | number, el: unknown) => void;
    minTabWidth: string | undefined;
};
//# sourceMappingURL=useTabBarAdaptiveLayout.d.ts.map