import type { CSSProperties, FocusEventHandler, KeyboardEventHandler, MouseEventHandler, Ref, RefObject } from "react";
import type { KeyboardMovementContext, KeyboardMovementProps } from "../movement/types.js";
declare module "react" {
    interface CSSProperties {
        "--rmd-tab-size"?: string;
        "--rmd-tab-offset"?: string | number;
        "--rmd-tab-indicator-background"?: string;
    }
}
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<TabWidthVar | TabOffsetVar, string>;
export interface TabListHookOptions {
    ref: Ref<HTMLDivElement> | undefined;
    style: CSSProperties | undefined;
    activeIndex: number;
    setActiveIndex(nextActiveIndex: number): void;
    scrollButtons: boolean;
    activationMode: "manual" | "automatic";
    vertical: boolean;
    onClick: MouseEventHandler<HTMLDivElement> | undefined;
    onFocus: FocusEventHandler<HTMLDivElement> | undefined;
    onKeyDown: KeyboardEventHandler<HTMLDivElement> | undefined;
    disableTransition: boolean;
}
export interface TabListHookReturnValue {
    elementProps: KeyboardMovementProps<HTMLDivElement> & {
        "aria-orientation": "horizontal" | "vertical";
        style: CSSProperties;
        ref: Ref<HTMLDivElement>;
        onClick: MouseEventHandler<HTMLDivElement>;
    };
    movementContext: KeyboardMovementContext;
    backwardProps: {
        ref: RefObject<HTMLDivElement>;
        type: "back";
        vertical: boolean;
    };
    forwardProps: {
        ref: RefObject<HTMLDivElement>;
        type: "forward";
        vertical: boolean;
    };
}
/**
 * @internal
 */
export declare function useTabList(options: TabListHookOptions): TabListHookReturnValue;
export {};
