import { ResultType, CoordType, RotatorType, ScaleType, BasicInfoAtomType } from './data-type';
/**
 * @abstract
 * @class AtomAbstract
 * @abstract @function Delete @param {Array<string>} eids @returns {Promise<ResultType>}
 * @abstract @function SetLocation @param {string} eid @param {CoordType} location @returns {Promise<ResultType>}
 * @abstract @function SetRotator @param {string} eid @param {RotatorType} rotator @returns {Promise<ResultType>}
 * @abstract @function SetScale3d @param {string} eid @param {ScaleType} scale3d @returns {Promise<ResultType>}
 * @abstract @function SetVisible @param {Array<string>} eid @param {boolean} bVisible @returns {Promise<ResultType>}
 * @abstract @function ClearCache @returns {Promise<ResultType>}
 * @abstract @function UpdateBasic @param {string} eid @param {BasicInfoAtomType} opt @returns {Promise<ResultType>}
 * @abstract @function onClick @param {any} func @returns {void}
 * @abstract @function onDbClick @param {any} func @returns {void}
 * @abstract @function onMouseEnter @param {any} func @returns {void}
 * @abstract @function onMouseOut @param {any} func @returns {void}
 * @abstract @function Add @param {any} obj @returns {Promise<ResultType>}
 * @abstract @function Get @param {string} eid (optional) @returns {Promise<ResultType>}
 * @abstract @function GetOnly @param {string} eid (optional) @returns {Promise<ResultType>}
 */
export declare abstract class AtomAbstract {
    abstract Delete: (eids: Array<string>) => Promise<ResultType>;
    abstract SetLocation: (eid: string, location: CoordType) => Promise<ResultType>;
    abstract SetRotator: (eid: string, rotator: RotatorType) => Promise<ResultType>;
    abstract SetScale3d: (eid: string, scale3d: ScaleType) => Promise<ResultType>;
    abstract SetVisible: (eid: Array<string>, bVisible: boolean) => Promise<ResultType>;
    abstract ClearCache: () => Promise<ResultType>;
    abstract UpdateBasic: (eid: string, opt: BasicInfoAtomType) => Promise<ResultType>;
    abstract onClick: (func: any) => void;
    abstract onDbClick: (func: any) => void;
    abstract onMouseEnter: (func: any) => void;
    abstract onMouseOut: (func: any) => void;
    abstract Add: (obj: any) => Promise<ResultType>;
    abstract Get: (eid?: string) => Promise<ResultType>;
    abstract GetOnly: (eid: string) => Promise<ResultType>;
}
