import { type AnchorHTMLAttributes, type ButtonHTMLAttributes, type ReactElement, type ReactNode } from "react";
import { type CustomLinkComponent } from "../link/Link.js";
/**
 * @remarks \@since 6.0.0
 */
export interface BaseTabProps {
    /**
     * Set this to `true` if the tab is currently active.
     *
     * This is normally provided by the {@link useTabs} hook.
     */
    active: boolean;
    /**
     * Set this to `true` if the {@link TabListProps.disableTransition} prop has
     * also been set to `true` to disable an active indicator below the tab when
     * {@link active} is `true`.
     *
     * @defaultValue `false`
     */
    activeIndicator?: boolean;
    /**
     * Set this to `true` when rendering the tabs vertically and
     * {@link activeIndicator} has been enabled.
     *
     * @defaultValue !false
     */
    verticalActiveIndicator?: boolean;
    /**
     * An optional icon to render with the with the {@link children}. The default
     * behavior will render this icon before the children.
     *
     * @see {@link iconAfter}
     * @see {@link stacked}
     */
    icon?: ReactNode;
    /**
     * Set this to `true` to render the {@link icon} after the {@link children}.
     *
     * @defaultValue `false`
     */
    iconAfter?: boolean;
    /**
     * Set this to `true` to render the {@link icon} and {@link children} stacked
     * instead of horizontally.
     *
     * @defaultValue `false`
     */
    stacked?: boolean;
}
/**
 * @remarks \@since 6.0.0
 */
export interface TabButtonProps extends BaseTabProps, ButtonHTMLAttributes<HTMLButtonElement> {
    as?: "button";
}
export interface TabLinkProps extends BaseTabProps, AnchorHTMLAttributes<HTMLAnchorElement> {
    as: CustomLinkComponent;
}
/**
 * @remarks \@since 6.0.0
 */
export type TabProps = TabButtonProps | TabLinkProps;
/**
 * **Client Component**
 *
 * This component should usually be used with the `TabsList` component and
 * `useTabs` hook.
 *
 * @see {@link useTabs}
 *
 * @remarks \@since 6.0.0
 */
export declare function Tab(props: TabProps): ReactElement;
