import { ComponentType, KeyboardEvent, MouseEvent, ReactNode } from 'react'; export interface TabData { label?: string; content?: ReactNode; testId?: string; [key: string]: any; } export interface TabItemElementProps { 'aria-posinset'?: number; 'aria-selected'?: boolean; 'aria-setsize'?: number; onClick?: () => void; onKeyDown?: (e: KeyboardEvent) => void; onMouseDown?: (e: MouseEvent) => void; role?: string; tabIndex?: number; } declare type TabItemInnerRef = (ref: HTMLElement) => void; export interface TabItemComponentProvided { data: TabData; elementProps: TabItemElementProps; innerRef: TabItemInnerRef; isSelected: boolean; } export interface TabContentComponentProvided { /** The complete tab object which you provided to `Tabs` in the tabs array. */ data: TabData; /** Accessibility props which should be spread onto your component. */ elementProps: { role?: string; }; } export declare type TabItemType = ComponentType; export declare type TabContentType = ComponentType; export declare type SelectedProp = any; export declare type IsSelectedTestFunction = (selected: SelectedProp, tab: TabData, tabIndex: number) => boolean; export declare type OnSelectCallback = (selected: TabData, selectedIndex: number) => void; export interface TabsProps { components?: { Item?: TabItemType; Content?: TabContentType; }; defaultSelected?: SelectedProp; isSelectedTest?: IsSelectedTestFunction; onSelect?: OnSelectCallback; selected?: SelectedProp; tabs: Array; testId?: string; className?: string; } export interface TabsState { selected: TabData; } export interface TabsNavigationProps { component: TabItemType; onSelect: OnSelectCallback; selected: TabData; tabs: Array; } export {};