import { ObjectAbstract } from '../../common/object-abstract';
import { ResultType, AssetsAtomType } from '../../common/data-type';
import { TilesType, AesTilesEntityAtomType, IGenerate } from '../../common/interface/tiles';
import { ObjectController } from '../../common/object-controller';
/**
 * @public
 * @class Tiles
 * @extends ObjectController
 * @implements ObjectAbstract
 */
declare class Tiles extends ObjectController implements ObjectAbstract {
    className: string;
    private apiClassName;
    private NodeValidate;
    private AesTilesEntityAtom;
    private AssetsAtom;
    private AesTilesVisualAtom;
    /**
     * @constructor
     * @param {TilesType} opt (optional)
     */
    constructor(opt?: TilesType);
    /**
     * @public
     * @function GetScheme
     * @returns {{AesTilesEntityAtom: AesTilesEntityAtomType, AssetsAtom: AssetsAtomType}}
     */
    GetScheme(): {
        AesTilesEntityAtom: AesTilesEntityAtomType;
        AssetsAtom: AssetsAtomType;
    };
    /**
     * @public
     * @function GetData
     * @returns {TilesType}
     */
    GetData(): TilesType;
    /**
     * @public
     * @function SetData
     * @param {TilesType} opt
     * @returns {void}
     */
    SetData(opt: TilesType): void;
    /**
     * @public
     * @function generateAtomData
     * @param {TilesType} opt
     * @returns {IGenerate}
     */
    generateAtomData(opt: TilesType): IGenerate;
    /**
     * @public
     * @async
     * @function SetNodesOutline
     * @param {{nodeIds?: Array<string>, bOutline?: boolean, styleName?: string}} opt
     * @returns {Promise<ResultType>}
     */
    SetNodesOutline(opt: {
        nodeIds?: Array<string>;
        bOutline?: boolean;
        styleName?: string;
    }): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function SetNodesHighlight
     * @param {{nodeIds?: Array<string>, bHighlight?: boolean, styleName?: string}} opt
     * @returns {Promise<ResultType>}
     */
    SetNodesHighlight(opt: {
        nodeIds?: Array<string>;
        bHighlight?: boolean;
        styleName?: string;
    }): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function SetNodesVisibility
     * @param {{nodeIds?: Array<string>, bVisible?: boolean}} opt
     * @returns {Promise<ResultType>}
     */
    SetNodesVisibility(opt: {
        nodeIds?: Array<string>;
        bVisible?: boolean;
    }): 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 {TilesType}
     */
    GetValidateRules(): TilesType;
    /**
     * @public
     * @function Validate
     * @param {TilesType} opt
     * @returns {void}
     */
    Validate(opt: TilesType): void;
}
export default Tiles;
