import React, { type ElementType, type Ref } from 'react'; import type { Props } from '../../types.js'; import { type HasDisplayName, type PropsForFeatures, type RefProp } 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; disabled: boolean; } type TabPropsWeControl = 'aria-controls' | 'aria-selected' | 'role' | 'tabIndex'; export type TabProps = Props & { disabled?: boolean; }; 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; export interface _internal_ComponentTab extends HasDisplayName { (props: TabProps & RefProp): JSX.Element; } export interface _internal_ComponentTabGroup extends HasDisplayName { (props: TabGroupProps & RefProp): JSX.Element; } export interface _internal_ComponentTabList extends HasDisplayName { (props: TabListProps & RefProp): JSX.Element; } export interface _internal_ComponentTabPanels extends HasDisplayName { (props: TabPanelsProps & RefProp): JSX.Element; } export interface _internal_ComponentTabPanel extends HasDisplayName { (props: TabPanelProps & RefProp): JSX.Element; } export declare let Tab: _internal_ComponentTab & { Group: _internal_ComponentTabGroup; List: _internal_ComponentTabList; Panels: _internal_ComponentTabPanels; Panel: _internal_ComponentTabPanel; }; export {};