import { ErrController } from './err-controller';
import { ObjectBasic } from './object-basic';
import { ResultType, EntityEidType, IOperations } from './data-type';
/**
 * @public
 * @class ObjectCore
 * @extends ObjectBasic
 * @implements ObjectCoreAbstract
 */
export declare class ObjectCore extends ObjectBasic implements ObjectCoreAbstract {
    protected err: ErrController;
    protected Eid: string | null;
    protected EntityType: string;
    protected objectType: string;
    addNewScheme: Record<string, any>;
    activeBaseAttributes: Array<string>;
    get eid(): string | null;
    set eid(Eid: string | null);
    get oType(): string;
    set oType(Type: string);
    get type(): string;
    set type(EntityType: string);
    protected getEid(): EntityEidType;
    protected setEid(opt: EntityEidType): void;
    /**
     * @private
     * @async
     * @function handleDeleteAction
     * @returns {Promise<ResultType>}
     */
    private handleDeleteAction;
    /**
     * @protected
     * @function handleAtom
     * @param {Record<string, any>} oriData
     * @param {Record<string, any>} paramsData
     * @returns {void}
     */
    protected handleAtom(oriData: Record<string, any>, paramsData: Record<string, any>): void;
    /**
     * @protected
     * @function handleAndCheckAtom
     * @param {Record<string, any>} oriData
     * @param {Record<string, any>} paramsData
     * @returns {void}
     */
    protected handleAndCheckAtom(oriData: Record<string, any>, paramsData: Record<string, any>): void;
    /**
     * @protected
     * @function validateEid
     * @param {string | null} eid
     * @returns {void}
     */
    protected validateEid(eid: string | null): void;
    /**
     * @public
     * @function setObj
     * @param {any} obj
     * @param {any} objFactory (optional)
     * @returns {void}
     */
    setObj(obj: any, objFactory?: any): void;
    /**
     * @public
     * @function onClick
     * @param {Function} func ((e: ResultType) => void)
     * @returns {void}
     */
    onClick(func: (e: ResultType) => void): void;
    /**
     * @public
     * @function onDbClick
     * @param {Function} func ((e: ResultType) => void)
     * @returns {void}
     */
    onDbClick(func: (e: ResultType) => void): void;
    /**
     * @public
     * @function onMouseEnter
     * @param {Function} func ((e: ResultType) => void)
     * @returns {void}
     */
    onMouseEnter(func: (e: ResultType) => void): void;
    /**
     * @public
     * @function onMouseOut
     * @param {Function} func ((e: ResultType) => void)
     * @returns {void}
     */
    onMouseOut(func: (e: ResultType) => void): void;
    /**
     * @public
     * @async
     * @function Get
     * @returns {Promise<ResultType>}
     */
    Get(): Promise<ResultType>;
    /**
     * @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 Delete
     * @returns {Promise<ResultType>}
     */
    Delete(): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function SnapTo
     * @param {IOperations} operations
     * @returns {Promise<ResultType>}
     */
    SnapTo(operations: IOperations): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function SetEntityOutline
     * @param {{styleName?: string, bOutline?: boolean}} opt
     * @returns {Promise<ResultType>}
     */
    SetEntityOutline(opt: {
        styleName?: string;
        bOutline?: boolean;
    }): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function SetEntityHighlight
     * @param {{styleName?: string, bHighlight?: boolean}} opt
     * @returns {Promise<ResultType>}
     */
    SetEntityHighlight(opt: {
        styleName?: string;
        bHighlight?: boolean;
    }): Promise<ResultType>;
    /**
     * @public
     * @function GetAllScheme
     * @returns {Record<string, any>}
     */
    GetAllScheme(): Record<string, any>;
    /**
     * @public
     * @function GetData
     * @returns {Record<string, any>}
     */
    GetData(): Record<string, any>;
    /**
     * @public
     * @function GetDataForEdit
     * @returns {Record<string, any>}
     */
    GetDataForEdit(): Record<string, any>;
    /**
     * @public
     * @function DeleteFromCache
     * @returns {void}
     */
    DeleteFromCache(): void;
    /**
     * @public
     * @function generateObjectData
     * @param {Record<string, any>} atomData
     * @param {Record<string, any>} atomObj (default value is this.atomObj)
     * @returns {void}
     */
    generateObjectData(atomData: Record<string, any>, atomObj?: Record<string, any>): void;
}
/**
 * @abstract
 * @class ObjectCoreAbstract
 */
declare abstract class ObjectCoreAbstract {
    abstract setObj: (obj: any, objFactory?: any) => void;
    abstract onClick: (func: (e: ResultType) => void) => void;
    abstract onDbClick: (func: (e: ResultType) => void) => void;
    abstract onMouseEnter: (func: (e: ResultType) => void) => void;
    abstract onMouseOut: (func: (e: ResultType) => void) => void;
    abstract Get: () => Promise<ResultType>;
    abstract Update: (opt: Record<string, any>, operations?: IOperations) => Promise<ResultType>;
    abstract Delete: () => Promise<ResultType>;
    abstract SnapTo: (operations: IOperations) => Promise<ResultType>;
    abstract SetEntityOutline: (opt: {
        styleName?: string;
        bOutline?: boolean;
    }) => Promise<ResultType>;
    abstract SetEntityHighlight: (opt: {
        styleName?: string;
        bHighlight?: boolean;
    }) => Promise<ResultType>;
    abstract GetAllScheme: () => Record<string, any>;
    abstract GetData: () => Record<string, any>;
    abstract GetDataForEdit: () => Record<string, any>;
    abstract DeleteFromCache: () => void;
}
export {};
