export type EasingFunction = (t: number) => number;
export interface AnimationProps {
    x?: number;
    y?: number;
    width?: number;
    height?: number;
    scale?: number;
    scaleX?: number;
    scaleY?: number;
    opacity?: number;
    angle?: number;
    blur?: number;
    brightness?: number;
    mirror?: number;
    motionBlur?: number;
}
export interface AnimationOptions {
    duration: number;
    delay?: number;
    easing?: string | EasingFunction;
    iterCount?: number;
    id?: string;
    disableGlobalEasing?: boolean;
}
export interface IAnimation {
    readonly id: string;
    readonly type: string;
    readonly options: Required<AnimationOptions>;
    readonly params?: any;
    /**
     * Calculate offsets and multipliers for the given time
     * @param time Relative time from the start of the clip in microseconds
     * @returns Partial state containing offsets/multipliers
     */
    getTransform(time: number): AnimationTransform;
    /**
     * Apply complex animations (like GSAP character animations) directly to a target
     * @param target The target object (e.g., PixiJS Container)
     * @param time Relative time in microseconds
     */
    apply?(target: any, time: number): void;
}
export interface AnimationTransform {
    x?: number;
    y?: number;
    width?: number;
    height?: number;
    scale?: number;
    scaleX?: number;
    scaleY?: number;
    opacity?: number;
    angle?: number;
    blur?: number;
    brightness?: number;
    mirror?: number;
    motionBlur?: number;
}
export interface KeyframeData {
    [key: string]: Partial<AnimationProps & {
        easing?: string | EasingFunction;
    }>;
}
export declare const ANIMATABLE_PROPERTIES: {
    readonly x: {
        readonly label: "X Position";
        readonly min: -2000;
        readonly max: 2000;
        readonly step: 1;
        readonly default: 0;
    };
    readonly y: {
        readonly label: "Y Position";
        readonly min: -2000;
        readonly max: 2000;
        readonly step: 1;
        readonly default: 0;
    };
    readonly width: {
        readonly label: "Width";
        readonly min: -1000;
        readonly max: 1000;
        readonly step: 1;
        readonly default: 0;
    };
    readonly height: {
        readonly label: "Height";
        readonly min: -1000;
        readonly max: 1000;
        readonly step: 1;
        readonly default: 0;
    };
    readonly scale: {
        readonly label: "Scale";
        readonly min: 0;
        readonly max: 3;
        readonly step: 0.1;
        readonly default: 1;
    };
    readonly scaleX: {
        readonly label: "Scale X";
        readonly min: 0;
        readonly max: 3;
        readonly step: 0.1;
        readonly default: 1;
    };
    readonly scaleY: {
        readonly label: "Scale Y";
        readonly min: 0;
        readonly max: 3;
        readonly step: 0.1;
        readonly default: 1;
    };
    readonly opacity: {
        readonly label: "Opacity";
        readonly min: 0;
        readonly max: 1;
        readonly step: 0.01;
        readonly default: 1;
    };
    readonly angle: {
        readonly label: "Rotation";
        readonly min: -360;
        readonly max: 360;
        readonly step: 1;
        readonly default: 0;
    };
    readonly blur: {
        readonly label: "Blur";
        readonly min: 0;
        readonly max: 100;
        readonly step: 1;
        readonly default: 0;
    };
    readonly brightness: {
        readonly label: "Brightness";
        readonly min: 0;
        readonly max: 5;
        readonly step: 0.1;
        readonly default: 1;
    };
    readonly mirror: {
        readonly label: "Mirror";
        readonly min: 0;
        readonly max: 1;
        readonly step: 1;
        readonly default: 0;
    };
    readonly motionBlur: {
        readonly label: "Motion Blur";
        readonly min: 0;
        readonly max: 500;
        readonly step: 1;
        readonly default: 0;
    };
};
