import { BaseObject } from "../core/BaseObject";
import { AnimationBlendType, TimelineType } from "../core/DragonBones";
import { Map } from "../core/DragonBones";
import { ArmatureData } from "./ArmatureData";
/**
 * - The animation data.
 * @version DragonBones 3.0
 * @language en_US
 */
export declare class AnimationData extends BaseObject {
    static toString(): string;
    /**
     * - FrameIntArray.
     * @internal
     */
    frameIntOffset: number;
    /**
     * - FrameFloatArray.
     * @internal
     */
    frameFloatOffset: number;
    /**
     * - FrameArray.
     * @internal
     */
    frameOffset: number;
    /**
     * @private
     */
    blendType: AnimationBlendType;
    /**
     * - The frame count of the animation.
     * @version DragonBones 3.0
     * @language en_US
     */
    frameCount: number;
    /**
     * - The play times of the animation. [0: Loop play, [1~N]: Play N times]
     * @version DragonBones 3.0
     * @language en_US
     */
    playTimes: number;
    /**
     * - The duration of the animation. (In seconds)
     * @version DragonBones 3.0
     * @language en_US
     */
    duration: number;
    /**
     * @private
     */
    scale: number;
    /**
     * - The fade in time of the animation. (In seconds)
     * @version DragonBones 3.0
     * @language en_US
     */
    fadeInTime: number;
    /**
     * @private
     */
    cacheFrameRate: number;
    /**
     * - The animation name.
     * @version DragonBones 3.0
     * @language en_US
     */
    name: string;
    /**
     * @private
     */
    readonly cachedFrames: Array<boolean>;
    /**
     * @private
     */
    readonly boneTimelines: Map<Array<TimelineData>>;
    /**
     * @private
     */
    readonly slotTimelines: Map<Array<TimelineData>>;
    /**
     * @private
     */
    readonly constraintTimelines: Map<Array<TimelineData>>;
    /**
     * @private
     */
    readonly animationTimelines: Map<Array<TimelineData>>;
    /**
     * @private
     */
    readonly boneCachedFrameIndices: Map<Array<number>>;
    /**
     * @private
     */
    readonly slotCachedFrameIndices: Map<Array<number>>;
    /**
     * @private
     */
    actionTimeline: TimelineData | null;
    /**
     * @private
     */
    zOrderTimeline: TimelineData | null;
    /**
     * @private
     */
    parent: ArmatureData;
    protected _onClear(): void;
    /**
     * @internal
     */
    cacheFrames(frameRate: number): void;
    /**
     * @private
     */
    addBoneTimeline(timelineName: string, timeline: TimelineData): void;
    /**
     * @private
     */
    addSlotTimeline(timelineName: string, timeline: TimelineData): void;
    /**
     * @private
     */
    addConstraintTimeline(timelineName: string, timeline: TimelineData): void;
    /**
     * @private
     */
    addAnimationTimeline(timelineName: string, timeline: TimelineData): void;
    /**
     * @private
     */
    getBoneTimelines(timelineName: string): Array<TimelineData> | null;
    /**
     * @private
     */
    getSlotTimelines(timelineName: string): Array<TimelineData> | null;
    /**
     * @private
     */
    getConstraintTimelines(timelineName: string): Array<TimelineData> | null;
    /**
     * @private
     */
    getAnimationTimelines(timelineName: string): Array<TimelineData> | null;
    /**
     * @private
     */
    getBoneCachedFrameIndices(boneName: string): Array<number> | null;
    /**
     * @private
     */
    getSlotCachedFrameIndices(slotName: string): Array<number> | null;
}
/**
 * @private
 */
export declare class TimelineData extends BaseObject {
    static toString(): string;
    type: TimelineType;
    offset: number;
    frameIndicesOffset: number;
    protected _onClear(): void;
}
/**
 * @internal
 */
export declare class AnimationTimelineData extends TimelineData {
    static toString(): string;
    x: number;
    y: number;
    protected _onClear(): void;
}
