import { IconState } from '../../types/global';
export interface IconProps {
    /**
     * Name or URL of the icon to display.
     */
    icon: string;
    /**
     * Callback fired when the icon is clicked.
     */
    onClick?: (e: React.MouseEvent | React.KeyboardEvent) => void;
    /**
     * Width of the icon. Can be a number (pixels) or string (e.g., '1em', '24px').
     */
    width?: number | string;
    /**
     * Height of the icon. Can be a number (pixels) or string (e.g., '1em', '24px').
     */
    height?: number | string;
    /**
     * Fallback icon name or URL to display when the main icon is not available.
     */
    placeholderIcon?: string;
    /**
     * Icon color (applied via CSS `fill` or `color`, depending on implementation).
     */
    color?: string;
    /**
     * If true, the icon appears visually disabled and is not interactive.
     * @default false
     */
    disabled?: boolean;
    /**
     * Visual state of the icon, used for conditional styling (e.g., active, warning, error).
     */
    state?: IconState;
    /**
     * If true, rotates the icon (usually 90 or 180 degrees).
     * @default false
     */
    rotated?: boolean;
    /**
     * If true, applies `cursor: pointer` to indicate interactivity.
     * @default false
     */
    isInteractable?: boolean;
    /**
     * If true, applies a spinning animation to the icon (typically used for loading states).
     * @default false
     */
    spin?: boolean;
    /**
     * Tooltip or alternative text shown on hover (used for accessibility and UX).
     */
    title?: string;
    /**
     * Whether the icon is part of the keyboard navigation
     */
    tabIndex?: number;
    /**
     * If this value is specified the icon will act as an anchor link to the resource.
     */
    link?: string;
}
//# sourceMappingURL=icon-types.d.ts.map