1import * as React from "react";
2import { IconName } from "@blueprintjs/icons";
3import { AbstractPureComponent2, IntentProps, Props, MaybeElement } from "../../common";
4export { IconName };
5export declare enum IconSize {
6    STANDARD = 16,
7    LARGE = 20
8}
9export declare type IconProps = IIconProps;
10/** @deprecated use IconProps */
11export interface IIconProps extends IntentProps, Props {
12    /** This component does not support custom children. Use the `icon` prop. */
13    children?: never;
14    /**
15     * Color of icon. This is used as the `fill` attribute on the `<svg>` image
16     * so it will override any CSS `color` property, including that set by
17     * `intent`. If this prop is omitted, icon color is inherited from
18     * surrounding text.
19     */
20    color?: string;
21    /**
22     * String for the `title` attribute on the rendered element, which will appear
23     * on hover as a native browser tooltip.
24     */
25    htmlTitle?: string;
26    /**
27     * Name of a Blueprint UI icon, or an icon element, to render. This prop is
28     * required because it determines the content of the component, but it can
29     * be explicitly set to falsy values to render nothing.
30     *
31     * - If `null` or `undefined` or `false`, this component will render nothing.
32     * - If given an `IconName` (a string literal union of all icon names), that
33     *   icon will be rendered as an `<svg>` with `<path>` tags. Unknown strings
34     *   will render a blank icon to occupy space.
35     * - If given a `JSX.Element`, that element will be rendered and _all other
36     *   props on this component are ignored._ This type is supported to
37     *   simplify icon support in other Blueprint components. As a consumer, you
38     *   should avoid using `<Icon icon={<Element />}` directly; simply render
39     *   `<Element />` instead.
40     */
41    icon: IconName | MaybeElement;
42    /**
43     * @deprecated use size prop instead
44     */
45    iconSize?: number;
46    /**
47     * Size of the icon, in pixels. Blueprint contains 16px and 20px SVG icon
48     * images, and chooses the appropriate resolution based on this prop.
49     *
50     * @default IconSize.STANDARD = 16
51     */
52    size?: number;
53    /** CSS style properties. */
54    style?: React.CSSProperties;
55    /**
56     * HTML tag to use for the rendered element.
57     *
58     * @default "span"
59     */
60    tagName?: keyof JSX.IntrinsicElements;
61    /**
62     * Description string. This string does not appear in normal browsers, but
63     * it increases accessibility. For instance, screen readers will use it for
64     * aural feedback.
65     *
66     * If this value is nullish, `false`, or an empty string, the component will assume
67     * that the icon is decorative and `aria-hidden="true"` will be applied.
68     *
69     * @see https://www.w3.org/WAI/tutorials/images/decorative/
70     */
71    title?: string | false | null;
72}
73export declare class Icon extends AbstractPureComponent2<IconProps & Omit<React.HTMLAttributes<HTMLElement>, "title">> {
74    static displayName: string;
75    /** @deprecated use IconSize.STANDARD */
76    static readonly SIZE_STANDARD = IconSize.STANDARD;
77    /** @deprecated use IconSize.LARGE */
78    static readonly SIZE_LARGE = IconSize.LARGE;
79    render(): JSX.Element | null;
80    /** Render `<path>` elements for the given icon name. Returns `null` if name is unknown. */
81    private renderSvgPaths;
82}
83