import React from 'react';
import { SpaceProps, ColorProps } from 'styled-system';
/**
 * Prop Types of an Icon component.
 * Apart from props defined below it extends all {@link ColorProps} and {@link SpaceProps}
 *
 * @memberof Icon
 * @alias IconProps
 * @property {string} [...] Other props from {@link ColorProps} and {@link SpaceProps}
 */
export declare type IconProps = SpaceProps & ColorProps & {
    /**
     * CamelCased name of an icon from https://www.carbondesignsystem.com/guidelines/icons/library/
     */
    icon?: string;
    /**
     * Size variant. Default to 16
     */
    size?: 16 | 20 | 24 | 32;
    /**
     * Icon color
     */
    color?: string;
    /**
     * Icon background
     */
    bg?: string;
    /**
     * If background should be rounded
     */
    rounded?: boolean;
};
/**
 * Component wrapping '@carbon/icons-react'. List of all icons can be found
 * here: https://www.carbondesignsystem.com/guidelines/icons/library/
 *
 * @component
 * @subcategory Atoms
 * @example <caption>Icons inside other elements</caption>
 * return (
 *   <Box variant="grey">
 *     <Label mb="default"><Icon icon="Accessibility" />Icon in Label</Label>
 *     <Button><Icon icon="Accessibility" />Icon in button</Button>
 *   </Box>
 * )
 * @example <caption>Different sizes</caption>
 * const sizes = [16, 20, 24, 32]
 * return (
 *   <Box variant="grey">
 *     {sizes.map(size => (
 *       <Label m="default"><Icon icon="Accessibility" size={size}/>Icon {size}</Label>
 *     ))}
 *   </Box>
 * )
 *
 * @example <caption>Big rounded icon with background</caption>
 * return (
 *   <Box variant="grey">
 *     <Icon icon="Add" color="white" bg="bluePrimary" rounded size={32} p="default"/>
 *   </Box>
 * )
 */
export declare const Icon: React.FC<IconProps>;
export default Icon;
