import { type AnchorHTMLAttributes, type ButtonHTMLAttributes, type ReactElement, type ReactNode } from "react"; import { type ComponentWithRippleProps } from "../interaction/types.js"; import { type CustomLinkComponent } from "../link/Link.js"; import { type BaseTabClassNameOptions } from "./tabStyles.js"; /** * @since 6.0.0 */ export interface BaseTabProps extends ComponentWithRippleProps, BaseTabClassNameOptions { /** * Set this to `true` if the tab is currently active. * * This is normally provided by the {@link useTabs} hook. */ active: 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; } /** * @since 6.0.0 */ export interface TabButtonProps extends BaseTabProps, ButtonHTMLAttributes { as?: "button"; } /** * @since 6.0.0 */ export interface TabLinkProps extends BaseTabProps, AnchorHTMLAttributes { as: CustomLinkComponent; } /** * @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 https://react-md.dev/components/tabs | Tabs Demos} * @see {@link useTabs} * @since 6.0.0 */ export declare function Tab(props: TabProps): ReactElement;