import { Component } from "../Component"; import { IVector2 } from "../Types/IVector2"; import { AnimationSystem } from "../Systems/AnimationSystem"; import { CurveInterpolator } from "curve-interpolator"; import { GameObject } from "../GameObject"; export declare enum InOutType { In = 0, Out = 1, InOut = 2, None = 3 } export declare const InOutStringMap: Record; export declare enum EasingType { Linear = 0, Quadratic = 1, Cubic = 2, Quartic = 3, Quintic = 4, Sinusoidal = 5, Exponential = 6, Circular = 7, Elastic = 8, Back = 9, Bounce = 10 } export declare enum AnimationType { Position = 0, Rotation = 1 } export declare enum RelativeType { Relative = 0, Absolute = 1 } interface IAnimationNode { value: IVector2; time: number; } export interface IAnimationConfig { name: string; eulerNodes: Record; posNodes: Record; scaleNodes: Record; loop: boolean; speed: number; } export declare const EasingStringMap: Record; export declare class AnimationComponent extends Component { static readonly id: string; static readonly _system: typeof AnimationSystem; private _config; initialPos: Record; initialAngle: Record; initialScale: Record; _cachedElements: Record; _time: number; _active: boolean; posInterpolators: Record; scaleInterpolators: Record; angleInterpolators: Record; get config(): IAnimationConfig; set config(val: IAnimationConfig); constructor(_config: IAnimationConfig); onAttach(): void; setIsActive(val: boolean): void; isActive(): boolean; onComponentAttached(_componentId: string, _component: Component): void; onDetach(): void; } export {};