import React__default, { ReactElement, JSX } from 'react';
import { DOMProps, AriaLabelingProps } from '@react-types/shared';

interface IconProps extends DOMProps, AriaLabelingProps {
    /**
     * A screen reader only label for the Icon.
     */
    'aria-label'?: string;
    /**
     * The content to display. Should be an SVG.
     */
    children: ReactElement<any>;
    /**
     * Size of Icon (changes based on scale).
     */
    size?: '2xs' | 'xs' | 'sm' | 'base' | 'lg' | 'xl' | '2xl' | '3xl';
    /**
     * A slot to place the icon in.
     * @default 'icon'
     */
    slot?: string;
    /**
     * Indicates whether the element is exposed to an accessibility API.
     */
    'aria-hidden'?: boolean | 'false' | 'true';
    /**
     * Color of the Icon. It can be a HEX color or a CSS custom property.
     */
    color?: string;
    /**
     * Custom class name to apply to the icon.
     */
    className?: string;
    style?: React__default.CSSProperties;
}
type IconPropsWithoutChildren = Omit<IconProps, 'children'>;
declare function Icon(props: IconProps): JSX.Element;

export { Icon as I, type IconProps as a, type IconPropsWithoutChildren as b };
