import React, { ComponentClass } from "react"; import { TextProps, TouchableHighlightProps, ViewProps, OpaqueColorValue, TextStyle, ViewStyle } from "react-native"; export { DEFAULT_ICON_COLOR, DEFAULT_ICON_SIZE, } from "./vendor/react-native-vector-icons/lib/create-icon-set"; export interface IconProps extends TextProps { /** * Size of the icon, can also be passed as fontSize in the style object. * * @default 12 */ size?: number; /** * Name of the icon to show * * See Icon Explorer app * {@link https://expo.github.io/vector-icons/} */ name: GLYPHS; /** * Color of the icon. Can be a string or OpaqueColorValue (returned from * PlatformColor(..)) * */ color?: string | OpaqueColorValue; } export interface IconButtonProps extends IconProps, ViewProps, TouchableHighlightProps { /** * Text and icon color * Use iconStyle or nest a Text component if you need different colors. * Can be a string or OpaqueColorValue (returned from PlatformColor(..)) * * @default 'white' */ color?: string | OpaqueColorValue; /** * Border radius of the button * Set to 0 to disable. * * @default 5 */ borderRadius?: number; /** * Styles applied to the icon only * Good for setting margins or a different color. * * @default {marginRight: 10} */ iconStyle?: TextStyle; /** * Style prop inherited from TextProps and TouchableWithoutFeedbackProperties * Only exist here so we can have ViewStyle or TextStyle * */ style?: ViewStyle | TextStyle; /** * Background color of the button. Can be a string or OpaqueColorValue (returned from * PlatformColor(..)) * * @default '#007AFF' */ backgroundColor?: string | OpaqueColorValue; } export declare type GlyphMap = { [K in G]: number | string; }; export interface Icon { defaultProps: any; Button: ComponentClass>; glyphMap: GlyphMap; getRawGlyphMap: () => GlyphMap; getFontFamily: () => FN; loadFont: () => Promise; font: { [x: string]: any; }; new (props: IconProps): React.Component>; } export default function (glyphMap: GlyphMap, fontName: FN, expoAssetId: any, fontStyle?: any): Icon;