import { ReactNode, FunctionComponent, HTMLProps } from 'react';
import { IconName } from './constants';
import '../../helpers/base.less';
import './Icon.less';
export * from './constants';
export declare type IconSize = '12' | '16' | '24' | '32' | '48' | '64' | '96' | '128' | '192';
export declare const ICON_SIZE_12: IconSize;
export declare const ICON_SIZE_16: IconSize;
export declare const ICON_SIZE_24: IconSize;
export declare const ICON_SIZE_32: IconSize;
export declare const ICON_SIZE_48: IconSize;
export declare const ICON_SIZE_64: IconSize;
export declare const ICON_SIZE_96: IconSize;
export declare const ICON_SIZE_128: IconSize;
export declare const ICON_SIZE_192: IconSize;
export declare type IconProps = {
    /**
     * @ignore
     */
    baseClassName?: string;
    /**
     * @ignore
     */
    className?: string;
    /**
     * Name of the icon
     * @since 0.0.42
     */
    name?: IconName;
    /**
     * Url to custom image
     * @since 0.0.42
     */
    src?: string;
    /**
     * IconSize of the icon
     * @since 0.0.42
     */
    size?: IconSize;
    /**
     * Visual intent color to apply to component.
     * @since 2.2.0
     */
    intent?: 'info' | 'success' | 'warning' | 'danger' | 'inactive';
    /**
     * Animation for icon
     * @since 1.0.0
     */
    animation?: 'spin';
    /**
     * Rotate by degree
     * @since 1.0.0
     */
    rotate?: 90 | 180 | 270;
    /**
     * Flip icon horizontal
     * @since 1.0.0
     */
    flipHorizontal?: boolean;
    /**
     * Flip icon vertical
     * @since 1.0.0
     */
    flipVertical?: boolean;
    /**
     * Alternative text for image
     * @since 0.0.42
     */
    alt?: string;
    /**
     * Content of the icon
     * @since 0.0.42
     */
    children?: ReactNode;
} & Omit<HTMLProps<HTMLSpanElement>, 'size'>;
declare type StaticMethods = {
    create: (...args: any) => any;
};
/**
 * `Icons` are small symbolic images used for two things: to help quickly find the right control on the screen and to
 * bring user attention to something that requires consideration. In the former case, `Icon` typically acts as a part
 * of a [Button](#!/Button) and helps differentiate this particular [Button](#!/Button) from others. `Icons` come in several
 * standard sizes.
 * @since 0.0.35
 */
declare const Icon: FunctionComponent<IconProps> & StaticMethods;
export default Icon;
