/**
 * @file Tab.tsx
 * @input Uses React, StyleX, TabListContext
 * @output Exports Tab component and TabProps type
 * @position Core tab item; renders as button or anchor in navigation with a
 *   divider-overlay selected indicator
 *
 * 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 { LinkComponentType } from '../Link/types';
export interface TabProps extends BaseProps<HTMLButtonElement> {
    /**
     * Custom component to render instead of `<a>` for link tabs.
     * Overrides the provider-level default set by LinkProvider.
     * Only applies when `href` is provided. Must accept href, className, style, and children props.
     */
    as?: LinkComponentType;
    ref?: React.Ref<HTMLButtonElement>;
    /**
     * Unique value for this tab. Matched against TabListContext.value.
     */
    value: string;
    /**
     * Accessible label for this tab. Used as visible text by default, or
     * as aria-label when isLabelHidden is true.
     */
    label: string;
    /**
     * Whether the label is visually hidden. When true, only the icon and
     * endContent are displayed, and label is used as aria-label for accessibility.
     * @default false
     */
    isLabelHidden?: boolean;
    /**
     * URL to navigate to. When provided, renders as an anchor element.
     */
    href?: string;
    /**
     * Icon element shown when tab is not selected.
     */
    icon?: ReactNode;
    /**
     * Icon element shown when tab is selected. Falls back to `icon` if not provided.
     */
    selectedIcon?: ReactNode;
    /**
     * Content rendered after the label (e.g. a badge or status dot).
     */
    endContent?: ReactNode;
}
/**
 * Tab item component. Renders as an anchor when `href` is provided,
 * otherwise as a button.
 *
 * @example
 * ```
 * <TabList value={tab} onChange={setTab}>
 *   <Tab value="general" label="General" />
 *   <Tab value="advanced" label="Advanced" />
 * </TabList>
 * ```
 */
export declare function Tab({ as, ref, value, label, isLabelHidden, href, icon, selectedIcon, endContent, xstyle, className, style, ...restProps }: TabProps): React.JSX.Element;
export declare namespace Tab {
    var displayName: string;
}
//# sourceMappingURL=Tab.d.ts.map