import { BaseObject } from "../core/BaseObject";
import { ArmatureType, BoneType, BlendMode, Map } from "../core/DragonBones";
import { ColorTransform } from "../geom/ColorTransform";
import { Matrix } from "../geom/Matrix";
import { Rectangle } from "../geom/Rectangle";
import { Transform } from "../geom/Transform";
import { AnimationData } from "./AnimationData";
import { CanvasData } from "./CanvasData";
import { ConstraintData } from "./ConstraintData";
import { MeshDisplayData, GeometryData } from "./DisplayData";
import { DragonBonesData } from "./DragonBonesData";
import { SkinData } from "./SkinData";
import { ActionData, UserData } from "./UserData";
/**
 * - The armature data.
 * @version DragonBones 3.0
 * @language en_US
 */
export declare class ArmatureData extends BaseObject {
    static toString(): string;
    /**
     * @private
     */
    type: ArmatureType;
    /**
     * - The animation frame rate.
     * @version DragonBones 3.0
     * @language en_US
     */
    frameRate: number;
    /**
     * @private
     */
    cacheFrameRate: number;
    /**
     * @private
     */
    scale: number;
    /**
     * - The armature name.
     * @version DragonBones 3.0
     * @language en_US
     */
    name: string;
    /**
     * @private
     */
    readonly aabb: Rectangle;
    /**
     * - The names of all the animation data.
     * @version DragonBones 3.0
     * @language en_US
     */
    readonly animationNames: Array<string>;
    /**
     * @private
     */
    readonly sortedBones: Array<BoneData>;
    /**
     * @private
     */
    readonly sortedSlots: Array<SlotData>;
    /**
     * @private
     */
    readonly defaultActions: Array<ActionData>;
    /**
     * @private
     */
    readonly actions: Array<ActionData>;
    /**
     * @private
     */
    readonly bones: Map<BoneData>;
    /**
     * @private
     */
    readonly slots: Map<SlotData>;
    /**
     * @private
     */
    readonly constraints: Map<ConstraintData>;
    /**
     * @private
     */
    readonly skins: Map<SkinData>;
    /**
     * @private
     */
    readonly animations: Map<AnimationData>;
    /**
     * - The default skin data.
     * @version DragonBones 4.5
     * @language en_US
     */
    defaultSkin: SkinData | null;
    /**
     * - The default animation data.
     * @version DragonBones 4.5
     * @language en_US
     */
    defaultAnimation: AnimationData | null;
    /**
     * @private
     */
    canvas: CanvasData | null;
    /**
     * @private
     */
    userData: UserData | null;
    /**
     * @private
     */
    parent: DragonBonesData;
    protected _onClear(): void;
    /**
     * @internal
     */
    sortBones(): void;
    /**
     * @internal
     */
    cacheFrames(frameRate: number): void;
    /**
     * @internal
     */
    setCacheFrame(globalTransformMatrix: Matrix, transform: Transform): number;
    /**
     * @internal
     */
    getCacheFrame(globalTransformMatrix: Matrix, transform: Transform, arrayOffset: number): void;
    /**
     * @internal
     */
    addBone(value: BoneData): void;
    /**
     * @internal
     */
    addSlot(value: SlotData): void;
    /**
     * @internal
     */
    addConstraint(value: ConstraintData): void;
    /**
     * @internal
     */
    addSkin(value: SkinData): void;
    /**
     * @internal
     */
    addAnimation(value: AnimationData): void;
    /**
     * @internal
     */
    addAction(value: ActionData, isDefault: boolean): void;
    /**
     * - Get a specific done data.
     * @param boneName - The bone name.
     * @version DragonBones 3.0
     * @language en_US
     */
    getBone(boneName: string): BoneData | null;
    /**
     * - Get a specific slot data.
     * @param slotName - The slot name.
     * @version DragonBones 3.0
     * @language en_US
     */
    getSlot(slotName: string): SlotData | null;
    /**
     * @private
     */
    getConstraint(constraintName: string): ConstraintData | null;
    /**
     * - Get a specific skin data.
     * @param skinName - The skin name.
     * @version DragonBones 3.0
     * @language en_US
     */
    getSkin(skinName: string): SkinData | null;
    /**
     * @private
     */
    getMesh(skinName: string, slotName: string, meshName: string): MeshDisplayData | null;
    /**
     * - Get a specific animation data.
     * @param animationName - The animation animationName.
     * @version DragonBones 3.0
     * @language en_US
     */
    getAnimation(animationName: string): AnimationData | null;
}
/**
 * - The bone data.
 * @version DragonBones 3.0
 * @language en_US
 */
export declare class BoneData extends BaseObject {
    static toString(): string;
    /**
     * @private
     */
    inheritTranslation: boolean;
    /**
     * @private
     */
    inheritRotation: boolean;
    /**
     * @private
     */
    inheritScale: boolean;
    /**
     * @private
     */
    inheritReflection: boolean;
    /**
     * @private
     */
    type: BoneType;
    /**
     * - The bone length.
     * @version DragonBones 3.0
     * @language en_US
     */
    length: number;
    /**
     * @private
     */
    alpha: number;
    /**
     * - The bone name.
     * @version DragonBones 3.0
     * @language en_US
     */
    name: string;
    /**
     * @private
     */
    readonly transform: Transform;
    /**
     * @private
     */
    userData: UserData | null;
    /**
     * - The parent bone data.
     * @version DragonBones 3.0
     * @language en_US
     */
    parent: BoneData | null;
    protected _onClear(): void;
}
/**
 * @internal
 */
export declare class SurfaceData extends BoneData {
    static toString(): string;
    segmentX: number;
    segmentY: number;
    readonly geometry: GeometryData;
    protected _onClear(): void;
}
/**
 * - The slot data.
 * @version DragonBones 3.0
 * @language en_US
 */
export declare class SlotData extends BaseObject {
    /**
     * @internal
     */
    static readonly DEFAULT_COLOR: ColorTransform;
    /**
     * @internal
     */
    static createColor(): ColorTransform;
    static toString(): string;
    /**
     * @private
     */
    blendMode: BlendMode;
    /**
     * @private
     */
    displayIndex: number;
    /**
     * @private
     */
    zOrder: number;
    /**
     * @private
     */
    zIndex: number;
    /**
     * @private
     */
    alpha: number;
    /**
     * - The slot name.
     * @version DragonBones 3.0
     * @language en_US
     */
    name: string;
    /**
     * @private
     */
    color: ColorTransform;
    /**
     * @private
     */
    userData: UserData | null;
    /**
     * - The parent bone data.
     * @version DragonBones 3.0
     * @language en_US
     */
    parent: BoneData;
    protected _onClear(): void;
}
