import { ObjectAbstract } from '../../../common/object-abstract';
import { ResultType, IPolylineATom } from '../../../common/data-type';
import { PathType, PathEntityAtomType, IGenerate } from '../../../common/interface/path';
import { ObjectCommon } from '../../../common/object-common';
/**
 * @public
 * @class Path
 * @extends ObjectCommon
 * @implements ObjectAbstract
 */
declare class Path extends ObjectCommon implements ObjectAbstract {
    className: string;
    private apiClassName;
    private PathEntityAtom;
    private PolylineAtom;
    /**
     * @constructor
     * @param {PathType} opt (optional)
     */
    constructor(opt?: PathType);
    /**
     * @public
     * @function GetScheme
     * @returns {{PathEntityAtom: PathEntityAtomType, PolylineAtom: IPolylineATom}}
     */
    GetScheme(): {
        PathEntityAtom: PathEntityAtomType;
        PolylineAtom: IPolylineATom;
    };
    /**
     * @public
     * @function GetData
     * @returns {PathType}
     */
    GetData(): PathType;
    /**
     * @public
     * @function SetData
     * @param {PathType} opt
     * @returns {void}
     */
    SetData(opt: PathType): void;
    /**
     * @public
     * @function generateAtomData
     * @param {PathType} opt
     * @returns {IGenerate}
     */
    generateAtomData(opt: PathType): IGenerate;
    /**
     * @public
     * @async
     * @function Modify
     * @param {{method?: string, index?: Array<number>, coordinates: Array<Array<number>>}} opt
     * @returns {Promise<ResultType>}
     */
    Modify(opt: {
        method?: string;
        index?: Array<number>;
        coordinates: Array<Array<number>>;
    }): Promise<ResultType>;
    /**
     * @public
     * @function GetValidateRules
     * @returns {PathType}
     */
    GetValidateRules(): PathType;
    /**
     * @public
     * @function Validate
     * @param {PathType} opt
     * @returns {void}
     */
    Validate(opt: PathType): void;
}
export default Path;
