import { OnProgressEvent } from './index.d'; import * as React from 'react' import { FlexStyle, LayoutChangeEvent, ShadowStyleIOS, StyleProp, TransformsStyle } from 'react-native' declare namespace FastImage { namespace priority { type low = 'low' type normal = 'normal' type high = 'high' } namespace resizeMode { type contain = 'contain' type cover = 'cover' type stretch = 'stretch' type center = 'center' } export type Priority = FastImage.priority.low | FastImage.priority.normal | FastImage.priority.high export type ResizeMode = FastImage.resizeMode.contain | FastImage.resizeMode.cover | FastImage.resizeMode.stretch | FastImage.resizeMode.center } export type FastImageSource = { uri?: string, headers?: object priority?: FastImage.Priority } export interface ImageStyle extends FlexStyle, TransformsStyle, ShadowStyleIOS { backfaceVisibility?: 'visible' | 'hidden' borderBottomLeftRadius?: number borderBottomRightRadius?: number backgroundColor?: string borderColor?: string borderWidth?: number borderRadius?: number borderTopLeftRadius?: number borderTopRightRadius?: number overlayColor?: string tintColor?: string opacity?: number } export interface OnLoadEvent { nativeEvent: { width: number height: number } } export interface OnProgressEvent { nativeEvent: { loaded: number total: number } } export interface FastImageProperties { source: FastImageSource | number resizeMode?: FastImage.ResizeMode onLoadStart?(): void onProgress?(event: OnProgressEvent): void onLoad?(event: OnLoadEvent): void onError?(): void onLoadEnd?(): void /** * onLayout function * * Invoked on mount and layout changes with * * {nativeEvent: { layout: {x, y, width, height}}}. */ onLayout?: (event: LayoutChangeEvent) => void /** * * Style */ style?: StyleProp /** * A unique identifier for this element to be used in UI Automation testing scripts. */ testID?: string } interface FastImageStatic extends React.ComponentClass { resizeMode: { contain: FastImage.resizeMode.contain cover: FastImage.resizeMode.cover stretch: FastImage.resizeMode.stretch center: FastImage.resizeMode.center } priority: { low: FastImage.priority.low normal: FastImage.priority.normal high: FastImage.priority.high } preload(sources: FastImageSource[]): void } declare var FastImage: FastImageStatic type FastImage = FastImageStatic export default FastImage