/** @module @airtable/blocks/ui: Icon */ /** */
import React from 'react';
import * as PropTypes from 'prop-types';
import { FlexItemSetProps, PositionSetProps, MarginProps } from './system';
import { TooltipAnchorProps } from './types/tooltip_anchor_props';
import { IconName } from './icon_config';
/**
 * Style props shared between the {@link Icon} and {@link FieldIcon} components. Accepts:
 * * {@link FlexItemSetProps}
 * * {@link PositionSetProps}
 * * {@link MarginProps}
 *
 * @noInheritDoc
 */
export interface IconStyleProps extends FlexItemSetProps, PositionSetProps, MarginProps {
}
export declare const iconStylePropTypes: {
    [x: string]: PropTypes.Validator<any>;
};
/**
 * Props shared between the {@link Icon} and {@link FieldIcon} components.
 *
 * @noInheritDoc
 */
export interface SharedIconProps extends IconStyleProps, TooltipAnchorProps<SVGSVGElement> {
    /** The width/height of the icon. Defaults to 16. */
    size?: number | string;
    /** The color of the icon. */
    fillColor?: string;
    /** Additional class names to apply to the icon. */
    className?: string;
    /** Additional styles to apply to the icon. */
    style?: React.CSSProperties;
    /** Additional class names to apply to the icon path. */
    pathClassName?: string;
    /** Additional styles to apply to the icon path. */
    pathStyle?: React.CSSProperties;
}
export declare const sharedIconPropTypes: {
    onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>;
    onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
    onClick: PropTypes.Requireable<(...args: any[]) => any>;
    hasOnClick: PropTypes.Requireable<boolean>;
    size: PropTypes.Requireable<string | number>;
    fillColor: PropTypes.Requireable<string>;
    className: PropTypes.Requireable<string>;
    style: PropTypes.Requireable<object>;
    pathClassName: PropTypes.Requireable<string>;
    pathStyle: PropTypes.Requireable<object>;
};
/**
 * Props for the {@link Icon} component. Also accepts:
 * * {@link IconStyleProps}
 */
interface IconProps extends SharedIconProps {
    /** The name of the icon. For more details, see the {@link IconName|list of supported icons}. */
    name: IconName;
    /** @internal */
    suppressWarning?: boolean;
}
declare const ForwardedRefIcon: React.ForwardRefExoticComponent<IconProps & React.RefAttributes<SVGSVGElement>>;
export default ForwardedRefIcon;
