import { ObjectAbstract } from '../../../common/object-abstract';
import { ResultType, AssetAtomType } from '../../../common/data-type';
import { SkeletalType, SkeletalMeshAtomType, IGenerate } from '../../../common/interface/skeletal';
import { ObjectController } from '../../../common/object-controller';
/**
 * @public
 * @class Skeletal
 * @extends ObjectController
 * @implements ObjectAbstract
 */
declare class Skeletal extends ObjectController implements ObjectAbstract {
    className: string;
    private AssetAtom;
    private SkeletalMeshAtom;
    private MaterialAtom;
    private materialEntities;
    private operations;
    private extraQueryInfo;
    /**
     * @constructor
     * @param {SkeletalType} opt (optional)
     */
    constructor(opt?: SkeletalType);
    get material(): Array<Record<string, any>>;
    set material(material: Array<Record<string, any>>);
    /**
     * @public
     * @function GetScheme
     * @returns {{AssetAtom: AssetAtomType, SkeletalMeshAtom: SkeletalMeshAtomType}}
     */
    GetScheme(): {
        AssetAtom: AssetAtomType;
        SkeletalMeshAtom: SkeletalMeshAtomType;
    };
    /**
     * @public
     * @function GetData
     * @returns {SkeletalType}
     */
    GetData(): SkeletalType;
    /**
     * @public
     * @function SetData
     * @param {SkeletalType} opt
     * @returns {void}
     */
    SetData(opt: SkeletalType): void;
    /**
     * @public
     * @function generateAtomData
     * @param {SkeletalType} opt
     * @returns {IGenerate}
     */
    generateAtomData(opt: SkeletalType): IGenerate;
    /**
     * @public
     * @async
     * @function GetMaterial
     * @returns {Promise<ResultType>}
     */
    GetMaterial(): Promise<ResultType>;
    /**
     * @public
     * @function generateObjectData
     * @param {Record<string, any>} atomData
     * @param {Record<string, any>} atomObj (default value is this)
     * @returns {void}
     */
    generateObjectData(atomData: Record<string, any>, atomObj?: Record<string, any>): void;
    /**
     * @public
     * @function GetValidateRules
     * @returns {SkeletalType}
     */
    GetValidateRules(): SkeletalType;
    /**
     * @public
     * @function Validate
     * @param {SkeletalType} opt
     * @returns {void}
     */
    Validate(opt: SkeletalType): void;
}
export default Skeletal;
