import { Transition } from "../../../../elements/transition/transition";
import { AnimationController, AnimationDataTypeArray, AnimationTaskMapArray, ImgElementProp, TransitionAnimationType, TransitionResolver } from "../../../../elements/transition/type";
import { Color, ImageSrc } from "../../../../types";
export declare abstract class ImageTransition<T extends TransitionAnimationType[] = any> extends Transition<HTMLImageElement, T> {
    /**@package */
    private _prevSrc;
    /**@package */
    private _targetSrc;
    /**@package */
    private _currentSrc;
    /**@package */
    _setPrevSrc(src: Color | ImageSrc | undefined): this;
    /**@package */
    _setTargetSrc(src: Color | ImageSrc | undefined): this;
    /**@package */
    _setCurrentSrc(src: Color | ImageSrc | undefined): this;
    /**@package */
    _getPrevSrc(): Color | ImageSrc | undefined;
    /**@package */
    _getTargetSrc(): Color | ImageSrc | undefined;
    /**@package */
    _getCurrentSrc(): Color | ImageSrc | undefined;
    requestAnimations(tasks: AnimationTaskMapArray<T>): AnimationController<T>;
    asPrev<T extends TransitionAnimationType[] = any>(resolver: (...args: AnimationDataTypeArray<T>) => ImgElementProp): TransitionResolver<HTMLImageElement, T>;
    asTarget<T extends TransitionAnimationType[] = any>(resolver: (...args: AnimationDataTypeArray<T>) => ImgElementProp): TransitionResolver<HTMLImageElement, T>;
    /**@package */
    private _srcToProps;
}
