import type { CSSProperties, FocusEventHandler, KeyboardEventHandler, MouseEventHandler, Ref, RefObject } from "react"; import type { KeyboardMovementContext, KeyboardMovementProps } from "../movement/types.js"; import { type TabListActivationMode, type TabListScrollButtonsBehavior } from "./types.js"; declare const TAB_SIZE_VAR = "--rmd-tab-size"; declare const TAB_OFFSET_VAR = "--rmd-tab-offset"; export type TabWidthVar = typeof TAB_SIZE_VAR; export type TabOffsetVar = typeof TAB_OFFSET_VAR; export type IndicatorCSSProperties = CSSProperties & Record; export interface TabListHookOptions { ref: Ref | undefined; style: CSSProperties | undefined; activeIndex: number; setActiveIndex: (nextActiveIndex: number) => void; scrollButtons: TabListScrollButtonsBehavior; activationMode: TabListActivationMode; vertical: boolean; onClick: MouseEventHandler | undefined; onFocus: FocusEventHandler | undefined; onKeyDown: KeyboardEventHandler | undefined; disableTransition: boolean; } export interface TabListHookReturnValue { elementProps: KeyboardMovementProps & { "aria-orientation": "horizontal" | "vertical"; style: CSSProperties; ref: Ref; onClick: MouseEventHandler; }; movementContext: KeyboardMovementContext; backwardProps: { ref: RefObject; type: "back"; vertical: boolean; disableTransition?: boolean; }; forwardProps: { ref: RefObject; type: "forward"; vertical: boolean; disableTransition?: boolean; }; showScrollButtons: boolean; } /** * @internal */ export declare function useTabList(options: TabListHookOptions): TabListHookReturnValue; export {};