import type { AriaButtonProps } from '@react-aria/button';
import type React from 'react';
import type { Polymorphic } from '../_utils/polymorphic';
import type { Props } from '../_utils/types';
export declare type TabRoleType = 'link' | 'button';
export interface TabPolyMap extends Record<TabRoleType, React.ElementType> {
    button: 'button';
    link: 'a';
}
export declare type TabRole = TabRoleType | undefined;
export declare type TabRef<Role extends TabRole = undefined> = Role extends TabRoleType ? Polymorphic.Ref<TabPolyMap, Role> : React.ComponentPropsWithRef<'div'>['ref'];
export declare type TabProps<Role extends TabRole = undefined> = Role extends 'link' ? Polymorphic.ComponentPropsWithRef<TabPolyMap, 'link', 'href', BaseTabProps> : Role extends 'button' ? Polymorphic.ComponentPropsWithRef<TabPolyMap, 'button', never, BaseTabProps & {
    onPress: AriaButtonProps['onPress'];
}> : BaseTabProps & {
    ref?: TabRef<undefined>;
};
export declare const tabVariant: {
    readonly none: "";
    readonly active: "active";
    readonly dark: "dark";
    readonly dropdown: "dropdown";
    readonly hover: "hover";
    readonly overflowing: "overflowing";
};
declare type TabVariant = (typeof tabVariant)[keyof typeof tabVariant];
export interface BaseTabProps extends Props {
    /**
     * The tab is active
     * @since 10.19.0
     * @deprecated Please use `selected` instead
     * @deprecatedSince 12.18.0
     */
    active?: boolean;
    /**
     * The tab is selected
     * @since 12.18.0
     */
    selected?: boolean;
    /**
     * Whether or not tab is in dark mode
     * @private
     * @since 10.19.0
     * @deprecated Custom styles intended for the global navigation header.
     * Future Core-React will look holistically at themes and dark mode support.
     *
     * AFTER - Regular Tab styles. If needing dark support, please reach out.
     * @deprecatedSince 12.8.0
     */
    dark?: boolean;
    /**
     * @private
     * @since 10.19.0
     */
    onMount?: (el: HTMLDivElement | null) => void;
    /**
     * @private
     */
    onUnmount?: () => void;
    /**
     * @deprecated This was never intended to be a public facing API and does not
     * do anything. It will be removed in the future.
     * @deprecatedSince 11
     * @since 10.19.0
     */
    dropdown?: boolean;
    /**
     * @deprecated This was never intended to be a public facing API and does not
     * do anything. It will be removed in the future.
     * @deprecatedSince 11
     * @since 10.19.0
     */
    overflowing?: boolean;
    /**
     * @deprecated please use the `selected` props to configure style. The
     * `dropdown`, `hover`, and `overflowing` variants were only for internal use
     * and should not be used in clients
     * @deprecatedSince 11
     * @since 10.19.0
     */
    variant?: TabVariant;
    /**
     * @since 11.6.0
     */
    disabled?: boolean;
    /**
     * Sets the Tab's role
     * @since 11.6.0
     */
    role?: TabRole;
    /**
     * Tab styles specific to the global navigation header.
     * @deprecated @experimental Alternative style variant. To be used on Helix Header ONLY
     * @since 12.8.0
     */
    UNSAFE_helixHeader?: boolean;
}
export interface TabsTabProps extends BaseTabProps {
}
export interface QaTags {
    /**
     * @since 10.19.0
     */
    more?: string;
}
export interface TabsProps extends Props {
    /**
     * @since 10.19.0
     * @deprecated Custom styles intended for the global navigation header.
     * Future Core-React will look holistically at themes and dark mode support.
     *
     * AFTER - Regular Tab styles. If needing dark support, please reach out.
     * @deprecatedSince 12.8.0
     */
    dark?: boolean;
    /**
     * @since 10.19.0
     */
    qa?: QaTags;
    /**
     * Tab styles specific to the global navigation header.
     * @deprecated @experimental Alternative style variant. To be used on Helix Header ONLY
     * @since 12.8.0
     */
    UNSAFE_helixHeader?: boolean;
}
export interface TabDropdownProps extends Props {
    /**
     * @since 10.19.0
     */
    visible?: boolean;
    /**
     * @since 10.19.0
     */
    qa?: QaTags;
}
export {};
