import { ImageURISource } from 'react-native';
import { JSX } from 'react';

declare interface GlyphIcon {
    readonly type: "glyph";
    readonly iconClass: string;
}

export declare function Icon(props: IconProps): JSX.Element;

export declare interface IconProps {
    name?: string;
    size?: number;
    icon?: NativeIcon;
    color?: string;
}

export declare interface IconStyle {
    size: number;
    color: string;
}

/**
 * Prop value representing all possible types of icons for the native platform.
 *
 * @property type The type of icon: `"glyph"` or `"image"`.
 * @property iconUrl The image source for the icon (only for {@link type} `"image"`).
 * @property iconClass The class for the glyph icon (only for {@link type} `"glyph"`).
 */
declare type NativeIcon = GlyphIcon | NativeImageIcon | undefined;

declare interface NativeImageIcon {
    readonly type: "image";
    readonly iconUrl: Readonly<ImageURISource | string>;
}

export { }
