import type { CSSProperties } from "react";
import React from "react";
import type { IconColorNames, IconNames, IconSizes } from "@jobber/design";
export type { IconColorNames, IconNames } from "@jobber/design";
export interface IconProps {
    /** The icon to show.  */
    readonly name: IconNames;
    /**
     * Changes the size to small or large.
     * @default base
     */
    readonly size?: IconSizes;
    /**
     * Determines the color of the icon. Some icons have a default system colour
     * like quotes, jobs, and invoices. Others that doesn't have a system colour
     * falls back to greyBlueDark.
     */
    readonly color?: IconColorNames;
    /**
     * Sets a custom color for the icon. Can be a rgb() or hex value.
     */
    readonly customColor?: string;
    /**
     * Used to locate this view in end-to-end tests
     */
    readonly testID?: string;
    /**
     * **Use at your own risk:** Custom classnames for specific elements. This should only be used as a
     * **last resort**. Using this may result in unexpected side effects.
     * More information in the [Customizing components Guide](https://atlantis.getjobber.com/guides/customizing-components).
     */
    readonly UNSAFE_className?: {
        svg?: string;
        path?: string;
    };
    /**
     * **Use at your own risk:** Custom style for specific elements. This should only be used as a
     * **last resort**. Using this may result in unexpected side effects.
     * More information in the [Customizing components Guide](https://atlantis.getjobber.com/guides/customizing-components).
     */
    readonly UNSAFE_style?: {
        svg?: CSSProperties;
        path?: CSSProperties;
    };
}
export declare function Icon({ name, color, customColor, size, testID, UNSAFE_className, UNSAFE_style, }: IconProps): React.JSX.Element;
