import * as _heroui_system from '@heroui/system'; import { HTMLHeroUIProps, PropGetter } from '@heroui/system'; import { SlotsToClasses, TabsSlots, TabsVariantProps, TabsReturnType } from '@heroui/theme'; import { ReactRef } from '@heroui/react-utils'; import { RefObject } from 'react'; import { TabListStateOptions, TabListState } from '@react-stately/tabs'; import { AriaTabListProps } from '@react-aria/tabs'; import { CollectionProps } from '@heroui/aria-utils'; interface Props extends Omit { /** * Ref to the DOM node. */ ref?: ReactRef; /** * Whether the tabs selection should occur on press up instead of press down. * @default true */ shouldSelectOnPressUp?: boolean; /** * Whether the cursor should be hidden. * @default false */ disableCursorAnimation?: boolean; /** * Classname or List of classes to change the classNames of the element. * if `className` is passed, it will be added to the base slot. * * @example * ```ts * * `` */ classNames?: SlotsToClasses; /** * The position of the tabs. * @default 'top' */ placement?: "top" | "bottom" | "start" | "end"; /** * Whether the tabs are vertical it will invalidate the placement prop when the value is true. * @default false */ isVertical?: boolean; /** * Whether to destroy inactive tab panel when switching tabs. Inactive tab panels are inert and cannot be interacted with. * @default true */ destroyInactiveTabPanel?: boolean; } type UseTabsProps = Props & TabsVariantProps & Omit, "children" | keyof AriaTabListProps> & Omit, "children" | "orientation"> & CollectionProps; type ValuesType = { state: TabListState; slots: TabsReturnType; disableCursorAnimation?: boolean; listRef?: RefObject; shouldSelectOnPressUp?: boolean; classNames?: SlotsToClasses; disableAnimation?: boolean; isDisabled?: boolean; }; declare function useTabs(originalProps: UseTabsProps): { Component: _heroui_system.As; domRef: RefObject; state: TabListState; values: ValuesType; destroyInactiveTabPanel: boolean; getBaseProps: PropGetter; getTabListProps: PropGetter; getWrapperProps: PropGetter; getTabCursorProps: PropGetter; }; type UseTabsReturn = ReturnType; export { type Props, type UseTabsProps, type UseTabsReturn, type ValuesType, useTabs };