import { LayoutUtilProps, Size, Svg } from '../../types';
import { ComponentPropsWithoutRef } from 'react';
/**
 * Props for the Icon component
 * @extends Omit<ComponentPropsWithoutRef<"span">, "children">
 * @extends Omit<LayoutUtilProps, "flex" | "flexBasis" | "flexGrow" | "flexShrink">
 */
export type IconProps = Omit<ComponentPropsWithoutRef<"span">, "children"> & Omit<LayoutUtilProps, "flex" | "flexBasis" | "flexGrow" | "flexShrink"> & {
    /**
     * Apply a specific color to the icon.
     */
    color?: string;
    /**
     * The size of the icon.
     * @default medium
     */
    size?: Extract<Size, "small" | "medium" | "large" | "xlarge">;
    /**
     * Assets passed in using svgr.
     */
    svg: Svg;
    /**
     * Whether the icon should inherit the color from its parent element.
     * @default false
     */
    inherit?: boolean;
};
/**
 * Icon component for displaying SVG icons with consistent styling and sizing.
 *
 * Features:
 * - SVG icon rendering with consistent styling
 * - Four predefined sizes: small, medium, large, xlarge
 * - Custom color support with optional inheritance
 * - Layout utilities for positioning and spacing
 * - Support for all standard span element props
 * - Flexible color inheritance and custom color options
 * - Consistent sizing across different icon sets
 *
 * @example
 * import Close from "@servicetitan/anvil2/assets/icons/material/round/close.svg";
 *
 * <Icon svg={Close} size="medium" />
 *
 * @example
 * import Info from "@servicetitan/anvil2/assets/icons/material/round/info.svg";
 *
 * <Icon
 *   svg={Info}
 *   size="large"
 *   color="#007bff"
 *   inherit={false}
 * />
 */
export declare const Icon: import('react').ForwardRefExoticComponent<Omit<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref">, "children"> & Omit<LayoutUtilProps, "flex" | "flexGrow" | "flexShrink" | "flexBasis"> & {
    /**
     * Apply a specific color to the icon.
     */
    color?: string;
    /**
     * The size of the icon.
     * @default medium
     */
    size?: Extract<Size, "small" | "medium" | "large" | "xlarge">;
    /**
     * Assets passed in using svgr.
     */
    svg: Svg;
    /**
     * Whether the icon should inherit the color from its parent element.
     * @default false
     */
    inherit?: boolean;
} & import('react').RefAttributes<HTMLSpanElement>>;
