import { ObjectAbstract } from '../../../common/object-abstract';
import { ResultType, IOperations } from '../../../common/data-type';
import { IProjectInstance, IProjectInstanceTransformAtom, IProjectInstanceAtom, IGenerate } from '../../../common/interface/project-instance';
import { ObjectCore } from '../../../common/object-core';
/**
 * @public
 * @class ProjectInstance
 * @extends ObjectCore
 * @implements ObjectAbstract
 */
declare class ProjectInstance extends ObjectCore implements ObjectAbstract {
    className: string;
    private apiClassName;
    private WdpProjectObjectAPI;
    private NodeValidate;
    private ProjectInstanceAtom;
    private ProjectInstanceTransformAtom;
    /**
     * @constructor
     * @param {IProjectInstance} opt (optional)
     */
    constructor(opt?: IProjectInstance);
    /**
     * @public
     * @function GetScheme
     * @returns {{ProjectInstanceAtom: IProjectInstanceAtom, ProjectInstanceTransformAtom: IProjectInstanceTransformAtom}}
     */
    GetScheme(): {
        ProjectInstanceAtom: IProjectInstanceAtom;
        ProjectInstanceTransformAtom: IProjectInstanceTransformAtom;
    };
    /**
     * @public
     * @function GetData
     * @returns {IProjectInstance}
     */
    GetData(): IProjectInstance;
    /**
     * @public
     * @function SetData
     * @param {IProjectInstance} opt
     * @returns {void}
     */
    SetData(opt: IProjectInstance): void;
    /**
     * @public
     * @function generateAtomData
     * @param {IProjectInstance} opt
     * @returns {IGenerate}
     */
    generateAtomData(opt: IProjectInstance): IGenerate;
    /**
     * @public
     * @async
     * @function Update
     * @param {Record<string, any>} opt
     * @param {IOperations} operations (optional)
     * @returns {Promise<ResultType>}
     */
    Update(opt: Record<string, any>, operations?: IOperations): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function Get
     * @returns {Promise<ResultType>}
     */
    Get(): Promise<ResultType>;
    /**
     * @public
     * @function GetTransform
     * @returns {Promise<ResultType>}
     */
    GetTransform(): Promise<ResultType>;
    /**
     * @public
     * @function SetTransform
     * @param {{location: CoordType; rotator: RotatorType; scale3d: ScaleType;}} transforms
     * @returns {Promise<ResultType>}
     */
    SetTransform(transforms: Partial<IProjectInstanceTransformAtom>): Promise<ResultType>;
    /**
     * @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 GetValidateRules
     * @returns {IProjectInstance}
     */
    GetValidateRules(): IProjectInstance;
    /**
     * @public
     * @function Validate
     * @param {IProjectModel} opt
     * @returns {void}
     */
    Validate(opt: IProjectInstance): void;
}
export default ProjectInstance;
