import React, { type CSSProperties, type Ref } from "react";
import { IconType as IconTypeEnum } from "./IconConstants";
import { type IconType } from "./Icon.types";
import { type VibeComponentProps, type SubIcon } from "../../types";
export interface IconSubComponentProps {
    /**
     * Ref for the icon component.
     */
    ref?: Ref<HTMLElement>;
    /**
     * The ID of the icon component.
     */
    id?: string;
    /**
     * The size of the icon.
     */
    size?: string | number;
    /**
     * Class name applied to the icon.
     */
    className?: string;
    /**
     * Inline styles applied to the icon.
     */
    style?: CSSProperties;
    /**
     * Test ID for testing purposes.
     */
    "data-testid"?: string;
}
export interface IconProps extends VibeComponentProps {
    /**
     * The icon name, component, or source URL.
     */
    icon: SubIcon;
    /**
     * The accessible label for the icon.
     */
    iconLabel?: string;
    /**
     * The type of the icon: `svg`, `font`, or `src` (external source).
     */
    iconType?: IconType;
    /**
     * The size of the icon.
     */
    iconSize?: number | string;
    /**
     * If true, removes focus styles from the icon.
     */
    ignoreFocusStyle?: boolean;
    /**
     * The tab index of the icon for keyboard navigation.
     */
    tabindex?: number | string;
    /**
     * If true, hides the icon from screen readers.
     */
    ariaHidden?: boolean;
    /**
     * Inline styles applied to the icon.
     */
    style?: React.CSSProperties;
    /**
     * If true, replaces `fill` property with `currentColor` when using an `src` icon.
     */
    useCurrentColor?: boolean;
    /**
     * Overrides the default color with a custom color.
     */
    customColor?: string;
}
declare const _default: React.ForwardRefExoticComponent<IconProps & React.RefAttributes<HTMLElement>> & {
    type: typeof IconTypeEnum;
};
export default _default;
