import { JSX } from 'react';

declare interface GlyphIcon {
    readonly type: "glyph";
    readonly iconClass: string;
}

export declare function Icon({ icon, altText }: IconProps): JSX.Element | null;

declare interface Icon_2 {
    readonly type: "icon";
    readonly iconClass: string;
}

export declare interface IconProps {
    icon?: WebIcon;
    altText?: string;
}

/**
 * Prop value representing all possible types of icons for the web platform.
 *
 * @property type The type of icon: `"glyph"`, `"image"` or `"icon"`.
 * @property iconUrl The image source for the icon (only for {@link type} `"image"`).
 * @property iconClass The CSS class for the glyph icon (only for {@link type} `"glyph" and `"icon"`).
 */
declare type WebIcon = GlyphIcon | WebImageIcon | Icon_2 | undefined;

declare interface WebImageIcon {
    readonly type: "image";
    readonly iconUrl: string;
}

export { }
