import { Component } from "react";
import { ViewStyle, View, ImageStyle } from "react-native";
declare type ImageSrc = string | number | Object;
interface SafeImageProps {
    src: ImageSrc;
    backupSrc?: ImageSrc;
    onError?: (e: any) => {};
    onLoad?: () => {};
    style?: ImageStyle;
}
declare type SafeImageState = {
    src: ImageSrc;
};
export declare class SafeImage extends Component<SafeImageProps, SafeImageState> {
    static defautProps: {
        src: string;
        backupSrc: string;
        onError: null;
        onLoad: null;
    };
    constructor(props: any);
    componentWillReceiveProps(nextProps: any): void;
    init(props: any, syncTag?: boolean): void;
    handleError: (e: any) => void;
    updateSrc: (src: any) => void;
    render(): JSX.Element;
}
export interface FullImageProps extends SafeImageProps {
    full?: boolean;
    wrapperStyle?: ViewStyle;
    imageStyle?: ImageStyle;
    fullType?: string;
}
declare type ParentReact = {
    width: number;
    height: number;
};
interface FullImageState {
    parentRect: ParentReact | null;
    ratio: number | null;
    visibleInFull: boolean;
}
export declare class FullImage extends Component<FullImageProps, FullImageState> {
    static defaultProps: {
        full: boolean;
        fullType: string;
        wrapperStyle: null;
        imageStyle: null;
        src: string;
        backupSrc: string;
        onError: null;
        onLoad: null;
    };
    state: FullImageState;
    $parent: View | null;
    calcRealValue(size: number, reverse?: boolean): number;
    getStyle(): {
        wrapperStyle: ViewStyle;
        imageStyle: ImageStyle;
    };
    getImageRawSizeInLocal(src: any): Promise<ParentReact>;
    getImageRawSizeInNetWork(src: string): Promise<ParentReact>;
    getRatioByImageRawSize(): Promise<number>;
    extendRectWhenFull: () => void;
    componentWillReceiveProps(): void;
    componentDidMount(): void;
    render(): JSX.Element;
}
export {};
