import { type CoreNode, type CoreNodeAnimateProps } from '../CoreNode.js';
import { EventEmitter } from '../../common/EventEmitter.js';
export interface AnimationSettings {
    duration: number;
    delay: number;
    easing: string;
    loop: boolean;
    repeat: number;
    repeatDelay: number;
    stopMethod: 'reverse' | 'reset' | false;
}
type PropValues = {
    start: number;
    target: number;
};
type PropValuesMap = Record<string, Record<string, PropValues>>;
export declare class CoreAnimation extends EventEmitter {
    private node;
    private props;
    settings: AnimationSettings;
    private progress;
    private delayFor;
    private delay;
    private timingFunction;
    propValuesMap: PropValuesMap;
    constructor(node: CoreNode, props: Partial<CoreNodeAnimateProps>, settings: Partial<AnimationSettings>);
    reset(): void;
    private restoreValues;
    restore(): void;
    private reverseValues;
    reverse(): void;
    private applyEasing;
    updateValue(propName: string, propValue: number, startValue: number, easing: string | undefined): number;
    private updateValues;
    update(dt: number): void;
}
export {};
