import { TagGroupProps as AriaTagGroupProps, TagProps as AriaTagProps, TagListProps } from 'react-aria-components/TagGroup';
import { ContextValue } from 'react-aria-components/slots';
import { StyleProps } from './style-utils';
import { ReactNode } from 'react';
import { DOMRefValue, GlobalDOMAttributes, HelpTextProps, LabelableProps, SpectrumLabelableProps } from '@react-types/shared';
export interface TagProps extends Omit<AriaTagProps, 'children' | 'style' | 'className' | 'render' | 'onClick' | keyof GlobalDOMAttributes>, LabelableProps {
    /** The children of the tag. */
    children: ReactNode;
}
export interface TagGroupProps<T> extends Omit<AriaTagGroupProps, 'children' | 'style' | 'className' | 'render' | keyof GlobalDOMAttributes>, Pick<TagListProps<T>, 'items' | 'children' | 'renderEmptyState'>, Omit<SpectrumLabelableProps, 'isRequired' | 'necessityIndicator'>, StyleProps, Omit<HelpTextProps, 'errorMessage'> {
    /** A description for the tag group. */
    description?: ReactNode;
    /**
     * The size of the tag group.
     *
     * @default 'M'
     */
    size?: 'S' | 'M' | 'L';
    /** Whether the tags are displayed in an emphasized style. */
    isEmphasized?: boolean;
    /** Provides content to display when there are no items in the tag group. */
    renderEmptyState?: () => ReactNode;
    /** Whether the tags are displayed in a error state. */
    isInvalid?: boolean;
    /** An error message for the field. */
    errorMessage?: ReactNode;
    /** Limit the number of rows initially shown. This will render a button that allows the user to expand to show all tags. */
    maxRows?: number;
    /** The label to display on the action button.  */
    groupActionLabel?: string;
    /** Handler that is called when the action button is pressed. */
    onGroupAction?: () => void;
}
export declare const TagGroupContext: import("react").Context<ContextValue<Partial<TagGroupProps<any>>, DOMRefValue<HTMLDivElement>>>;
/** Tags allow users to categorize content. They can represent keywords or people, and are grouped to describe an item or a search request. */
export declare const TagGroup: <T extends object>(props: TagGroupProps<T> & import("react").RefAttributes<DOMRefValue<HTMLDivElement>>) => import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | null;
/** An individual Tag for TagGroups. */
export declare const Tag: (props: TagProps & import("react").RefAttributes<DOMRefValue<HTMLDivElement>>) => import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | null;
