import '@ui5/webcomponents/dist/Tag.js';
import type TagDesign from '@ui5/webcomponents/dist/types/TagDesign.js';
import type TagSize from '@ui5/webcomponents/dist/types/TagSize.js';
import type WrappingType from '@ui5/webcomponents/dist/types/WrappingType.js';
import type { CommonProps, Ui5CustomEvent, Ui5DomRef, UI5WCSlotsNode } from '@ui5/webcomponents-react-base';
import type { ReactNode } from 'react';
interface TagAttributes {
    /**
     * Defines the color scheme of the component.
     * There are 10 predefined schemes.
     * To use one you can set a number from `"1"` to `"10"`. The `colorScheme` `"1"` will be set by default.
     * @default "1"
     */
    colorScheme?: string;
    /**
     * Defines the design type of the component.
     *
     * **Note:** Available since [v1.22.0](https://github.com/UI5/webcomponents/releases/tag/v1.22.0) of **@ui5/webcomponents**.
     * @default "Neutral"
     */
    design?: TagDesign | keyof typeof TagDesign;
    /**
     * Defines if the default state icon is shown.
     *
     * **Note:** Available since [v1.22.0](https://github.com/UI5/webcomponents/releases/tag/v1.22.0) of **@ui5/webcomponents**.
     * @default false
     */
    hideStateIcon?: boolean;
    /**
     * Defines if the component is interactive (focusable and pressable).
     *
     * **Note:** Available since [v1.22.0](https://github.com/UI5/webcomponents/releases/tag/v1.22.0) of **@ui5/webcomponents**.
     * @default false
     */
    interactive?: boolean;
    /**
     * Defines predefined size of the component.
     *
     * **Note:** Available since [v2.0.0](https://github.com/UI5/webcomponents/releases/tag/v2.0.0) of **@ui5/webcomponents**.
     * @default "S"
     */
    size?: TagSize | keyof typeof TagSize;
    /**
     * Defines how the text of a component will be displayed when there is not enough space.
     *
     * **Note:** For option "Normal" the text will wrap and the
     * words will not be broken based on hyphenation.
     *
     * **Note:** Available since [v1.22.0](https://github.com/UI5/webcomponents/releases/tag/v1.22.0) of **@ui5/webcomponents**.
     * @default "Normal"
     */
    wrappingType?: WrappingType | keyof typeof WrappingType;
}
interface TagDomRef extends Required<TagAttributes>, Ui5DomRef {
}
interface TagPropTypes extends TagAttributes, Omit<CommonProps, keyof TagAttributes | 'children' | 'icon' | 'onClick'> {
    /**
     * Defines the text of the component.
     *
     * **Note:** Although this slot accepts HTML Elements, it is strongly recommended that you only use text in order to preserve the intended design.
     *
     * __Supported Node Type/s:__ `Array<Node>`
     */
    children?: ReactNode | ReactNode[];
    /**
     * Defines the icon to be displayed in the component.
     *
     * __Note:__ The content of the prop will be rendered into a [&lt;slot&gt;](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/slot) by assigning the respective [slot](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/slot) attribute (`slot="icon"`).
     * Since you can't change the DOM order of slots when declaring them within a prop, it might prove beneficial to manually mount them as part of the component's children, especially when facing problems with the reading order of screen readers.
     *
     * __Note:__ When passing a custom React component to this prop, you have to make sure your component reads the `slot` prop and appends it to the most outer element of your component.
     * Learn more about it [here](https://ui5.github.io/webcomponents-react/v2/?path=/docs/knowledge-base-handling-slots--docs).
     *
     * __Supported Node Type/s:__ `Array<IIcon>`
     */
    icon?: UI5WCSlotsNode;
    /**
     * Fired when the user clicks on an interactive tag.
     *
     * **Note:** The event will be fired if the `interactive` property is `true`
     *
     * **Note:** Available since [v1.22.0](https://github.com/UI5/webcomponents/releases/tag/v1.22.0) of **@ui5/webcomponents**.
     *
     * | cancelable | bubbles |
     * | :--------: | :-----: |
     * | ❌|✅|
     */
    onClick?: (event: Ui5CustomEvent<TagDomRef>) => void;
}
/**
 * The `Tag` is a component which serves
 * the purpose to attract the user attention to some piece
 * of information (state, quantity, condition, etc.).
 * It can contain icon and text information, and its design can be chosen from specific design types.
 *
 * ### Usage Guidelines
 *
 * - If the text is longer than the width of the component, it can wrap, or it can show ellipsis, depending on the `wrappingType` property.
 * - Colors can be semantic or not semantic.
 *
 *
 *
 * __Note:__ This is a UI5 Web Component! [Tag UI5 Web Component Documentation](https://ui5.github.io/webcomponents/components/Tag) | [Repository](https://github.com/UI5/webcomponents)
 *
 * @since [2.0.0](https://github.com/UI5/webcomponents/releases/tag/v2.0.0) of __@ui5/webcomponents__.
 */
declare const Tag: import("react").ForwardRefExoticComponent<TagPropTypes & import("@ui5/webcomponents-react-base").WithWebComponentPropTypes & import("react").RefAttributes<TagDomRef>>;
export { Tag };
export type { TagDomRef, TagPropTypes };
