import { AtomController } from '../common/atom-controller';
import { ResultType, IPickerMaterial } from '../common/data-type';
import { IentitySlotParams } from '../common/interface/material';
/**
 * @public
 * @class MaterialController
 * @extends AtomController
 */
declare class MaterialController extends AtomController {
    private apiClassName;
    private MaterialValidate;
    /**
     * @constructor
     * @param {any} obj
     */
    constructor(obj: any);
    /**
     * @public
     * @async
     * @function Apply
     * @param {Record<string, any>} obj
     * @param {Array<Record<string, any>>} newMaterialsInfo
     * @returns {Promise<ResultType>}
     */
    Apply(datas: Array<{
        obj: Record<string, any>;
        newMaterialsInfo: Array<Record<string, any>>;
    }>): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function SetModelMaterial
     * @param {{TargetMaterials: Array<IPickerMaterial>, MaterialEid: string}} opt
     * @returns {Promise<ResultType>}
     */
    SetModelMaterial(opt: {
        TargetMaterials: Array<IPickerMaterial>;
        MaterialEid: string;
    }): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function GetList
     * @param {Record<string, any>} obj
     * @returns {Promise<ResultType>}
     */
    GetList(objs: Array<Record<string, any>>): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function SetEntitySlotsHighlight
     * @param {Array<IentitySlotParams>} entitySlotParams
     * @returns {Promise<ResultType>}
     */
    SetEntitySlotsHighlight(entitySlotParams: Array<IentitySlotParams>): Promise<ResultType>;
}
export default MaterialController;
