import type React from "react";
import { FocusEvent, KeyboardEvent } from "react";
import type { TabsActivationMode, TabsDescriptor, TabsOrientation } from "./types";
interface UseTabsStateOptions {
    items: TabsDescriptor[];
    value?: string;
    defaultValue?: string;
    onValueChange?: (value: string) => void;
    orientation?: TabsOrientation;
    activationMode?: TabsActivationMode;
    loop?: boolean;
}
/**
 * Публичная часть модели, необходимая визуальным подкомпонентам tabs.
 */
export interface TabsStateModel {
    activationMode: TabsActivationMode;
    orientation: TabsOrientation;
    selectedTabId: string | null;
    tabbableTabId: string | null;
    onTabListKeyDown: (event: KeyboardEvent<HTMLDivElement>) => void;
    onTabListBlur: (event: FocusEvent<HTMLDivElement>) => void;
    getTabElementId: (tabId: string) => string;
    getPanelElementId: (tabId: string) => string;
    getTabButtonProps: (item: TabsDescriptor) => React.ButtonHTMLAttributes<HTMLButtonElement> & {
        ref: (node: HTMLButtonElement | null) => void;
    };
    isVisited: (tabId: string) => boolean;
}
/**
 * Инкапсулирует state, a11y-связки и клавиатурную навигацию для всех оболочек tabs.
 */
export declare function useTabsState({ items, value, defaultValue, onValueChange, orientation, activationMode, loop }: UseTabsStateOptions): TabsStateModel;
export {};
//# sourceMappingURL=useTabsState.d.ts.map