import * as react_jsx_runtime from 'react/jsx-runtime';
import { ComponentPropsWithoutRef, ReactNode } from 'react';
import * as class_variance_authority_types from 'class-variance-authority/types';
import { VariantProps } from 'class-variance-authority';

declare const iconStyles: (props?: ({
    intent?: "main" | "current" | "alert" | "error" | "support" | "accent" | "basic" | "success" | "info" | "neutral" | null | undefined;
    size?: "current" | "sm" | "md" | "lg" | "xl" | null | undefined;
} & class_variance_authority_types.ClassProp) | undefined) => string;
type IconVariantsProps = VariantProps<typeof iconStyles>;

interface IconProps extends IconVariantsProps, ComponentPropsWithoutRef<'svg'> {
    /**
     * The svg icon that will be wrapped
     */
    children: ReactNode;
    /**
     * The accessible label for the icon. This label will be visually hidden but announced to screen
     * reader users, similar to `alt` text for `img` tags.
     */
    label?: string;
}
declare const Icon: {
    ({ label, className, size, intent, children, ...others }: IconProps): react_jsx_runtime.JSX.Element;
    displayName: string;
};

export { Icon, type IconProps };
