import { type HTMLAttributes, type ReactElement, type Ref } from "react";
import { type BaseTabListScrollButtonProps } from "./TabListScrollButton.js";
import { type GetTabListScrollToOptions } from "./getTabListScrollToOptions.js";
import { type TabListClassNameOptions } from "./tabListStyles.js";
import { type TabListActivationMode, type TabListScrollButtonsBehavior } from "./types.js";
/**
* @since 6.0.0
*/
export interface TabListProps extends HTMLAttributes, Omit {
ref?: Ref;
activeIndex: number;
setActiveIndex: (nextActiveIndex: number) => void;
/**
* Set this to `true` to show a scrollbar when the number of tabs cause
* overflow.
*
* @see {@link scrollButtons}
* @defaultValue `false`
*/
scrollbar?: boolean;
/**
* Set this to `true` to disable the active tab indicator from animating
* when a new tab is selected.
*
* @defaultValue `false`
*/
disableTransition?: boolean;
/**
* This should be equal to the `$tabs-transition-duration` variable.
*
* @defaultValue `150`
*/
transitionDuration?: number;
/**
* @defaultValue `"manual"`
* @see {@link TabListActivationMode}
*/
activationMode?: TabListActivationMode;
/**
* @defaultValue `false`
* @see {@link TabListScrollButtonsBehavior}
*/
scrollButtons?: TabListScrollButtonsBehavior;
/**
* A convenience prop for the {@link BaseTabListScrollButtonProps.getScrollToOptions}
* on {@link forwardScrollButtonProps} and {@link backwardScrollButtonProps}.
*/
getScrollToOptions?: GetTabListScrollToOptions;
/**
* Any additional props that should be passed to the scroll forward button.
*
* @example
* ```tsx
* forwardScrollButtonProps={{
* "aria-label": "Scroll right",
* theme: "primary",
* themeType: "contained",
* className: styles.buttonContainer,
* buttonProps: {
* className: styles.button,
* }
* }}
* ```
*/
forwardScrollButtonProps?: BaseTabListScrollButtonProps;
/**
* Any additional props that should be passed to the scroll backward button.
*
* @example
* ```tsx
* forwardScrollButtonProps={{
* "aria-label": "Scroll left",
* theme: "primary",
* themeType: "contained",
* className: styles.buttonContainer,
* buttonProps: {
* className: styles.button,
* }
* }}
* ```
*/
backwardScrollButtonProps?: BaseTabListScrollButtonProps;
}
/**
* **Client Component**
*
* @see {@link https://react-md.dev/components/tabs | Tabs Demos}
* @see {@link useTabs} for example usage.
* @since 6.0.0
*/
export declare function TabList(props: TabListProps): ReactElement;