import React, { ElementType, Ref } from 'react'; import { Props } from '../../types.js'; import { PropsForFeatures, RefProp, HasDisplayName } from '../../utils/render.js'; declare let DEFAULT_TABS_TAG: React.ExoticComponent<{ children?: React.ReactNode; }>; interface TabsRenderPropArg { selectedIndex: number; } export type TabGroupProps = Props void; selectedIndex?: number; vertical?: boolean; manual?: boolean; }>; declare function GroupFn(props: TabGroupProps, ref: Ref): JSX.Element; declare let DEFAULT_LIST_TAG: "div"; interface ListRenderPropArg { selectedIndex: number; } type ListPropsWeControl = 'aria-orientation' | 'role'; export type TabListProps = Props; declare function ListFn(props: TabListProps, ref: Ref): React.ReactElement> | null; declare let DEFAULT_TAB_TAG: "button"; interface TabRenderPropArg { selected: boolean; } type TabPropsWeControl = 'aria-controls' | 'aria-selected' | 'role' | 'tabIndex'; export type TabProps = Props & {}; declare function TabFn(props: TabProps, ref: Ref): React.ReactElement> | null; declare let DEFAULT_PANELS_TAG: "div"; interface PanelsRenderPropArg { selectedIndex: number; } export type TabPanelsProps = Props; declare function PanelsFn(props: TabPanelsProps, ref: Ref): React.ReactElement> | null; declare let DEFAULT_PANEL_TAG: "div"; interface PanelRenderPropArg { selected: boolean; } type PanelPropsWeControl = 'role' | 'aria-labelledby'; declare let PanelRenderFeatures: number; export type TabPanelProps = Props & { id?: string; tabIndex?: number; }>; declare function PanelFn(props: TabPanelProps, ref: Ref): JSX.Element | null; interface ComponentTab extends HasDisplayName { (props: TabProps & RefProp): JSX.Element; } interface ComponentTabGroup extends HasDisplayName { (props: TabGroupProps & RefProp): JSX.Element; } interface ComponentTabList extends HasDisplayName { (props: TabListProps & RefProp): JSX.Element; } interface ComponentTabPanels extends HasDisplayName { (props: TabPanelsProps & RefProp): JSX.Element; } interface ComponentTabPanel extends HasDisplayName { (props: TabPanelProps & RefProp): JSX.Element; } export declare let Tab: ComponentTab & { Group: ComponentTabGroup; List: ComponentTabList; Panels: ComponentTabPanels; Panel: ComponentTabPanel; }; export {};