import { ObjectAbstract } from '../../../common/object-abstract';
import { ResultType } from '../../../common/data-type';
import { BoundType, MoveAlongPathEntityAtomType, IGenerate } from '../../../common/interface/bound';
import { ObjectCommon } from '../../../common/object-common';
/**
 * @public
 * @class Bound
 * @extends ObjectCommon
 * @implements ObjectAbstract
 */
declare class Bound extends ObjectCommon implements ObjectAbstract {
    className: string;
    private MoveAlongPathEntityAtom;
    private movingObj;
    private pathObj;
    /**
     * @constructor
     * @param {BoundType} opt (optional)
     */
    constructor(opt?: BoundType);
    get moving(): any;
    set moving(movingObj: any);
    get path(): any;
    set path(pathObj: any);
    GetMoving(): Promise<ResultType>;
    SetMoving(movingObj: any): Promise<ResultType>;
    GetPath(): Promise<ResultType>;
    SetPath(pathObj: any): Promise<ResultType>;
    /**
     * @public
     * @function GetScheme
     * @returns {{MoveAlongPathEntityAtom: MoveAlongPathEntityAtomType}}
     */
    GetScheme(): {
        MoveAlongPathEntityAtom: MoveAlongPathEntityAtomType;
    };
    /**
     * @public
     * @function GetData
     * @returns {BoundType}
     */
    GetData(): BoundType;
    /**
     * @public
     * @function SetData
     * @param {BoundType} opt
     * @returns {void}
     */
    SetData(opt: BoundType): void;
    /**
     * @public
     * @function generateAtomData
     * @param {BoundType} opt
     * @returns {IGenerate}
     */
    generateAtomData(opt: BoundType): IGenerate;
    /**
     * @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;
    /**
     * @public
     * @function GetValidateRules
     * @returns {BoundType}
     */
    GetValidateRules(): BoundType;
    /**
     * @public
     * @function Validate
     * @param {BoundType} opt
     * @returns {void}
     */
    Validate(opt: BoundType): void;
}
export default Bound;
