import { Color } from "../util/color"; import { Modeling, Model } from "../util/types"; export declare type AnimatedKey = "translationX" | "translationY" | "scaleX" | "scaleY" | "rotation" | "pivotX" | "pivotY" | "rotationX" | "rotationY" | "backgroundColor" | "alpha"; export declare enum RepeatMode { RESTART = 1, REVERSE = 2 } export interface IAnimation extends Modeling { duration: number; delay?: number; id: string; } export interface Changeable { fromValue: number; toValue: number; key: AnimatedKey; repeatCount?: number; repeatMode?: RepeatMode; keyFrames?: { percent: number; value: number; }[]; } export declare enum FillMode { /** * The receiver is removed from the presentation when the animation is completed. */ Removed = 0, /** * The receiver remains visible in its final state when the animation is completed. */ Forward = 1, /** * The receiver clamps values before zero to zero when the animation is completed. */ Backward = 2, /** * The receiver clamps values at both ends of the object’s time space */ Both = 3 } export declare enum TimingFunction { /** * The system default timing function. Use this function to ensure that the timing of your animations matches that of most system animations. */ Default = 0, /** * Linear pacing, which causes an animation to occur evenly over its duration. */ Linear = 1, /** * Ease-in pacing, which causes an animation to begin slowly and then speed up as it progresses. */ EaseIn = 2, /** * Ease-out pacing, which causes an animation to begin quickly and then slow as it progresses. */ EaseOut = 3, /** * Ease-in-ease-out pacing, which causes an animation to begin slowly, accelerate through the middle of its duration, and then slow again before completing. */ EaseInEaseOut = 4 } declare abstract class Animation implements IAnimation { changeables: Map; duration: number; repeatCount?: number; repeatMode?: RepeatMode; delay?: number; fillMode: FillMode; timingFunction?: TimingFunction; id: string; toModel(): { type: string; delay: number | undefined; duration: number; changeables: { key: AnimatedKey; fromValue: number; toValue: number; keyFrames: { percent: number; value: number; }[] | undefined; }[]; repeatCount: number | undefined; repeatMode: RepeatMode | undefined; fillMode: FillMode; timingFunction: TimingFunction | undefined; id: string; }; } export declare class ScaleAnimation extends Animation { private scaleXChangeable; private scaleYChangeable; constructor(); set xKeyFrames(keyFrames: { percent: number; value: number; }[]); set yKeyFrames(keyFrames: { percent: number; value: number; }[]); set fromScaleX(v: number); get fromScaleX(): number; set toScaleX(v: number); get toScaleX(): number; set fromScaleY(v: number); get fromScaleY(): number; set toScaleY(v: number); get toScaleY(): number; } export declare class TranslationAnimation extends Animation { private translationXChangeable; private translationYChangeable; constructor(); set xKeyFrames(keyFrames: { percent: number; value: number; }[]); set yKeyFrames(keyFrames: { percent: number; value: number; }[]); set fromTranslationX(v: number); get fromTranslationX(): number; set toTranslationX(v: number); get toTranslationX(): number; set fromTranslationY(v: number); get fromTranslationY(): number; set toTranslationY(v: number); get toTranslationY(): number; } /** * Rotation range is [0..2] */ export declare class RotationAnimation extends Animation { private rotationChaneable; constructor(); set fromRotation(v: number); get fromRotation(): number; set toRotation(v: number); get toRotation(): number; set keyFrames(keyFrames: { percent: number; value: number; }[]); } /** * Rotation range is [0..2] */ export declare class RotationXAnimation extends Animation { private rotationChaneable; constructor(); set fromRotation(v: number); get fromRotation(): number; set toRotation(v: number); get toRotation(): number; set keyFrames(keyFrames: { percent: number; value: number; }[]); } /** * Rotation range is [0..2] */ export declare class RotationYAnimation extends Animation { private rotationChaneable; constructor(); set fromRotation(v: number); get fromRotation(): number; set toRotation(v: number); get toRotation(): number; set keyFrames(keyFrames: { percent: number; value: number; }[]); } export declare class BackgroundColorAnimation extends Animation { private backgroundColorChangeable; constructor(); set fromColor(color: Color); get fromColor(): Color; set toColor(v: Color); get toColor(): Color; set keyFrames(keyFrames: { percent: number; value: Color; }[]); } /** * Alpha range is [0..1] */ export declare class AlphaAnimation extends Animation { private opacityChangeable; constructor(); set from(v: number); get from(): number; set to(v: number); get to(): number; set keyFrames(keyFrames: { percent: number; value: number; }[]); } export declare class AnimationSet implements IAnimation { private animations; private _duration; delay?: number; id: string; addAnimation(anim: IAnimation): void; get duration(): number; set duration(v: number); toModel(): { animations: Model; delay: number | undefined; id: string; }; } export {};