export * from './index-common';
import { Background, Color, backgroundInternalProperty } from '@nativescript/core';
import { AnimatedImage, EventData, ImageBase, ImageError as ImageErrorBase, ImageInfo as ImageInfoBase, ImagePipelineConfigSetting, QualityInfo, SrcType, aspectRatioProperty, backgroundUriProperty, blurDownSamplingProperty, blurRadiusProperty, fadeDurationProperty, failureImageUriProperty, headersProperty, imageRotationProperty, lowerResSrcProperty, noRatioEnforceProperty, placeholderImageUriProperty, progressBarColorProperty, roundAsCircleProperty, roundBottomLeftRadiusProperty, roundBottomRightRadiusProperty, roundTopLeftRadiusProperty, roundTopRightRadiusProperty, showProgressBarProperty, srcProperty, stretchProperty, tintColorProperty } from './index-common';
export declare function initialize(config?: ImagePipelineConfigSetting): void;
export declare function getImagePipeline(): ImagePipeline;
export declare function shutDown(): void;
export declare class ImagePipeline {
    private _android;
    toUri(value: string | android.net.Uri): globalAndroid.net.Uri;
    getCacheKey(uri: string, context: any): string;
    isInDiskCache(uri: string | android.net.Uri): boolean;
    isInBitmapMemoryCache(uri: string | android.net.Uri): boolean;
    evictFromMemoryCache(uri: string | android.net.Uri): void;
    evictFromDiskCache(uri: string | android.net.Uri): Promise<void>;
    evictFromCache(uri: string | android.net.Uri): Promise<void>;
    clearCaches(): void;
    clearMemoryCaches(): void;
    clearDiskCaches(): void;
    prefetchToDiskCache(uri: string): Promise<void>;
    prefetchToMemoryCache(uri: string): Promise<void>;
    private prefetchToCache;
    get android(): any;
    set android(value: any);
    fetchImage(): void;
}
export declare class ImageError implements ImageErrorBase {
    private _stringValue;
    private _message;
    private _errorType;
    constructor(throwable: java.lang.Throwable);
    getMessage(): string;
    getErrorType(): string;
    toString(): string;
}
export declare class ImageInfo implements ImageInfoBase {
    private _nativeImageInfo;
    constructor(imageInfo: any);
    getHeight(): number;
    getWidth(): number;
    getQualityInfo(): QualityInfo;
}
export declare class FinalEventData extends EventData {
    private _imageInfo;
    private _animatable;
    get imageInfo(): ImageInfo;
    set imageInfo(value: ImageInfo);
    get animatable(): AnimatedImage;
    set animatable(value: AnimatedImage);
    get android(): AnimatedImage;
}
export declare class IntermediateEventData extends EventData {
    private _imageInfo;
    get imageInfo(): ImageInfo;
    set imageInfo(value: ImageInfo);
}
export declare const needUpdateHierarchy: (targetOrNeedsLayout: any, propertyKey?: string | symbol, descriptor?: PropertyDescriptor) => any;
export declare class Img extends ImageBase {
    [placeholderImageUriProperty.setNative]: () => void;
    [failureImageUriProperty.setNative]: () => void;
    [stretchProperty.setNative]: () => void;
    [fadeDurationProperty.setNative]: () => void;
    [backgroundUriProperty.setNative]: () => void;
    [showProgressBarProperty.setNative]: () => void;
    [progressBarColorProperty.setNative]: () => void;
    [roundAsCircleProperty.setNative]: () => void;
    [roundTopLeftRadiusProperty.setNative]: () => void;
    [imageRotationProperty.setNative]: (value: any) => void;
    [roundTopRightRadiusProperty.setNative]: () => void;
    [roundBottomLeftRadiusProperty.setNative]: () => void;
    [roundBottomRightRadiusProperty.setNative]: () => void;
    [tintColorProperty.setNative]: (value: Color) => void;
    [blurRadiusProperty.setNative]: () => void;
    [srcProperty.setNative]: () => void;
    [lowerResSrcProperty.setNative]: () => void;
    [blurDownSamplingProperty.setNative]: () => void;
    [aspectRatioProperty.setNative]: (value: any) => void;
    [headersProperty.setNative]: (value: any) => void;
    [backgroundInternalProperty.setNative]: (value: Background) => void;
    [noRatioEnforceProperty.setNative]: (value: boolean) => void;
    nativeViewProtected: com.nativescript.image.DraweeView;
    nativeImageViewProtected: com.nativescript.image.DraweeView;
    isLoading: boolean;
    mCanUpdateHierarchy: boolean;
    mNeedUpdateHierarchy: boolean;
    mNeedUpdateLayout: boolean;
    onResumeNativeUpdates(): void;
    createNativeView(): com.nativescript.image.DraweeView;
    updateViewSize(imageInfo: any): void;
    disposeNativeView(): void;
    get cacheKey(): string | globalAndroid.net.Uri;
    updateImageUri(): Promise<void>;
    controllerListener: com.facebook.drawee.controller.ControllerListener<com.facebook.imagepipeline.image.ImageInfo>;
    requestListener: com.facebook.imagepipeline.listener.RequestListener;
    protected handleImageSrc(src: SrcType): Promise<void>;
    protected initImage(): Promise<void>;
    private updateHierarchy;
    private getDrawable;
    private getDrawableFromLocalFile;
    private getDrawableFromResource;
    startAnimating(): void;
    stopAnimating(): void;
}
