import React, { PropsWithChildren, ReactNode } from 'react';
import { TagBaseProps } from '@carbon/type';
type Align = 'start' | 'center' | 'end';
type OverflowAlign = 'top' | 'top-left' | 'top-right' | 'bottom' | 'bottom-left' | 'bottom-right' | 'left' | 'left-bottom' | 'left-top' | 'right' | 'right-bottom' | 'right-top';
type OverflowType = 'default' | 'tag';
type TagType = {
    label: string;
    type?: keyof typeof tagTypes;
    /**
     * @deprecated Use the `onClose` function instead to render as a DismissibleTag
     */
    filter?: boolean;
} & TagBaseProps;
export interface TagSetProps extends PropsWithChildren {
    /**
     * align the Tags displayed by the TagSet. Default start.
     */
    align?: Align;
    /**
     * aria label for all tags modal with hasScrollingContent
     */
    allTagsModalAriaLabel?: string;
    /**
     * label text for the show all search.
     */
    allTagsModalSearchLabel?: string;
    /**
     * placeholder text for the show all search.
     */
    allTagsModalSearchPlaceholderText?: string;
    /**
     * portal target for the all tags modal
     */
    allTagsModalTarget?: ReactNode;
    /**
     * title for the show all modal.
     */
    allTagsModalTitle?: string;
    /**
     * className
     */
    className?: string;
    /**
     * Optional ref for custom resize container to measure available space
     * Default will measure the available space of the TagSet container itself.
     */
    containingElementRef?: React.Ref<HTMLElement>;
    /**
     * maximum visible tags
     */
    maxVisible?: number;
    /**
     * Specify offset amount for measure available space, only used when `containingElementSelector`
     * is also provided
     */
    measurementOffset?: number;
    /**
     * display tags in multiple lines
     */
    multiline?: boolean;
    /**
     * An optional click handler that overrides the default functionality of displaying all tags in a modal
     */
    onOverflowClick?: ((overFlowTags: ReactNode[]) => void) | undefined;
    /**
     * Handler to get overflow tags
     */
    onOverflowTagChange?: (value: ReactNode) => void;
    /**
     * overflowAlign from the standard tooltip. Default center.
     */
    overflowAlign?: OverflowAlign;
    /**
     * Will auto-align the popover on first render if it is not visible. This prop is currently experimental and is subject to future changes.
     */
    overflowAutoAlign?: boolean;
    /**
     * overflowClassName for the tooltip popup
     */
    overflowClassName?: string;
    /**
     * Type of rendering displayed inside of the tag overflow component
     */
    overflowType?: OverflowType;
    /**
     * label for the overflow show all tags link.
     */
    showAllTagsLabel?: string;
    /**
     * The tags to be shown in the TagSet. Each tag is specified as an object
     * with properties: **label**\* (required) to supply the tag content, and
     * other properties will be passed to the Carbon Tag component, such as
     * **type**, **disabled**, **ref**, **className** , and any other Tag props.
     *
     * See https://react.carbondesignsystem.com/?path=/docs/components-tag--default
     */
    tags?: TagType[];
}
export declare const TagSet: React.ForwardRefExoticComponent<TagSetProps & React.RefAttributes<HTMLDivElement>>;
declare const tagTypes: string[];
export default TagSet;
//# sourceMappingURL=TagSet.d.ts.map