/**
 * @file TabList.tsx
 * @input Uses React, StyleX, TabListContext, useListFocus, useKeyboardHint
 * @output Exports TabList component and TabListProps type
 * @position Nav wrapper; provides TabListContext to Tab and TabMenu children.
 *   Owns roving-tabindex keyboard navigation (Arrow/Home/End) across the tab
 *   strip via the shared useListFocus hook so it is a single Tab stop.
 *
 * SYNC: When modified, update:
 * - /packages/core/src/TabList/TabList.doc.mjs
 * - /packages/core/src/TabList/index.ts
 * - /packages/core/src/TabList/TabList.test.tsx
 * - /packages/cli/assets/templates/blocks/components/TabList/ (showcase blocks)
 */
import React, { type ReactNode } from 'react';
import type { BaseProps } from '../BaseProps';
import type { TabListSize } from './TabListContext';
import { EDGE_COMP_ATTR } from '../Layout/edgeCompensation.stylex';
export interface TabListProps extends Omit<BaseProps<HTMLElement>, 'onChange'> {
    ref?: React.Ref<HTMLElement>;
    /**
     * The currently selected tab value.
     */
    value: string;
    /**
     * Callback fired when a tab is selected.
     */
    onChange: (value: string) => void;
    /**
     * Size of the tab hover targets. Uses the same element size tokens
     * as Button and TextInput (`sm` = 28px, `md` = 32px, `lg` = 36px).
     * @default 'md'
     */
    size?: TabListSize;
    /**
     * Layout mode for tab sizing.
     * - `'hug'` (default): each tab hugs its content width.
     * - `'fill'`: tabs stretch equally to fill the container width.
     * @default 'hug'
     */
    layout?: 'hug' | 'fill';
    /**
     * Whether to show a bottom divider under the tab list.
     * @default false
     */
    hasDivider?: boolean;
    /**
     * Tab and TabMenu children.
     */
    children: ReactNode;
}
/**
 * Tab navigation wrapper. Provides context for value/onChange/size
 * to Tab and TabMenu children.
 *
 * @example
 * ```
 * <TabList value={activeTab} onChange={setActiveTab}>
 *   <Tab value="home" label="Home" />
 *   <Tab value="settings" label="Settings" />
 *   <TabMenu label="More">
 *     <Tab value="analytics" label="Analytics" />
 *     <Tab value="reports" label="Reports" />
 *   </TabMenu>
 * </TabList>
 * ```
 */
export declare function TabList({ ref, value, onChange, size: sizeProp, layout, hasDivider, xstyle, className, style, children, onKeyDown: onKeyDownProp, onFocus: onFocusProp, onBlur: onBlurProp, 'aria-label': ariaLabelFromProps, 'aria-orientation': _ariaOrientation, [EDGE_COMP_ATTR]: _edgeCompAttr, ...restProps }: TabListProps): React.JSX.Element;
export declare namespace TabList {
    var displayName: string;
}
//# sourceMappingURL=TabList.d.ts.map