import { Image } from '../../global/shared-types/image.types';
import { Icon } from '../../global/shared-types/icon.types';
import { MenuItem } from '../menu/menu.types';
import { ListSeparator } from '../list-item/list-item.types';
import { Color } from '../../global/shared-types/color.types';
/**
 * @public
 */
export interface Chip<T = any> {
    /**
     * ID of the chip. Must be unique.
     */
    id: number | string;
    /**
     * Text to display inside the chip.
     */
    text: string;
    /**
     * Name of the icon to use. Not valid for `filter`.
     */
    icon?: string | Icon;
    /**
     * A picture to be displayed instead of the icon on the chip.
     */
    image?: Image;
    /**
     * Color of the icon. Overrides `--icon-color`.
     *
     * @deprecated This property is deprecated and will be removed soon!
     *
     * Use the new `Icon` interface instead and write:
     * ```
     * icon {
     *    name: string,
     *    color: string,
     * },
     * ```
     */
    iconFillColor?: Color;
    /**
     * `title` attribute of the icon
     *
     * @deprecated This property is deprecated and will be removed soon!
     *
     * Use the new `Icon` interface instead and write:
     * ```
     * icon {
     *    name: string,
     *    title: string,
     * },
     * ```
     */
    iconTitle?: string;
    /**
     * Background color of the icon. Overrides `--icon-background-color`.
     *
     * @deprecated This property is deprecated and will be removed soon!
     *
     * Use the new `Icon` interface instead and write:
     * ```
     * icon {
     *    name: string,
     *    backgroundColor: string,
     * },
     * ```
     */
    iconBackgroundColor?: Color;
    /**
     * Whether the chip should be removable. Not valid for `choice`.
     */
    removable?: boolean;
    /**
     * Whether the chip is selected. Only valid for `choice` and `filter`.
     */
    selected?: boolean;
    /**
     * Value of the chip.
     */
    value?: T;
    /**
     * The value of the badge.
     */
    badge?: number;
    /**
     * If supplied, the chip will render a link, using the supplied href.
     */
    href?: string;
    /**
     * List of the items to display as in a menu, on the chip.
     */
    menuItems?: Array<MenuItem | ListSeparator>;
    /**
     * Set to `true` to put the chip in the `loading` state, and render an
     * indeterminate progress indicator inside the chip.
     */
    loading?: boolean;
}
/**
 * This type is used to determine the visual style and behavior of a Chip component.
 * @public
 */
export type ChipType = 'default' | 'filter';
//# sourceMappingURL=chip.types.d.ts.map