import { Basic } from '../common/basic';
import { ResultType } from '../common/data-type';
import { IdataBasic, IclusterStartPar, IattPar, IcreateData, IDelData, IDelGatherData, ISearchByPoint, ISearchByLine, ISearchByArea } from '../common/interface/cluster';
type TclusterEventStatus = 'none' | 'pending' | 'resolve' | 'reject';
/**
 * @public
 * @class ClusterController
 * @extends Basic
 */
declare class ClusterController extends Basic {
    private apiClassName;
    private ClusterValidate;
    private defaultMode;
    clusterStatus: boolean;
    openonclick: boolean;
    clusterCacheData: Array<IattPar>;
    generatedEntity: Array<Record<string, any>>;
    evnetCacheData: Array<Record<string, any>>;
    countLimit: number;
    clusterEventStatus: TclusterEventStatus;
    /**
     * @constructor
     * @param {any} obj
     */
    constructor(obj: any);
    /**
     * @public
     * @async
     * @function SetLimit
     * @param {number} limit (optional, default value is 100)
     * @returns {Promise<ResultType>}
     */
    SetLimit(limit?: number): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function Start
     * @param {IclusterStart} opt
     * @returns {Promise<ResultType>}
     */
    Start(opt: IclusterStartPar): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function End
     * @returns {Promise<ResultType>}
     */
    End(): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function Create
     * @param {IcreateData} data
     * @param {string} path (optional)
     * @returns {Promise<ResultType>}
     */
    Create(data: IcreateData, path?: string): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function Update
     * @param {IcreateData} data
     * @param {string} path (optional)
     * @returns {Promise<ResultType>}
     */
    Update(data: IcreateData, path?: string): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function Delete
     * @param {IDelData} data
     * @param {string} path (optional)
     * @returns {Promise<ResultType>}
     */
    Delete(data: IDelData, path?: string): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function Delete
     * @param {IdataBasic} data
     * @param {string} path (optional)
     * @returns {Promise<ResultType>}
     */
    Reset(data: IdataBasic, path?: string): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function DeleteGather
     * @param {IDelGatherData} data
     * @param {string} path (optional)
     * @returns {Promise<ResultType>}
     */
    DeleteGather(data: IDelGatherData, path?: string): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function GetList
     * @param {IDelData} data
     * @param {string} path (optional)
     * @returns {Promise<ResultType>}
     */
    GetList(data: IDelData, path?: string): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function Count
     * @param {IdataBasic} data
     * @param {string} path (optional)
     * @returns {Promise<ResultType>}
     */
    Count(data: IdataBasic, path?: string): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function GetGatherList
     * @param {IDelGatherData} data
     * @param {string} path (optional)
     * @returns {Promise<ResultType>}
     */
    GetGatherList(data: IDelGatherData, path?: string): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function SearchByPoint
     * @param {ISearchByPoint} data
     * @param {string} path (optional)
     * @returns {Promise<ResultType>}
     */
    SearchByPoint(data: ISearchByPoint, path?: string): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function SearchByPoint
     * @param {ISearchByLine} data
     * @param {string} path (optional)
     * @returns {Promise<ResultType>}
     */
    SearchByLine(data: ISearchByLine, path?: string): Promise<ResultType>;
    /**
     * @public
     * @async
     * @function SearchByPoint
     * @param {ISearchByArea} data
     * @param {string} path (optional)
     * @returns {Promise<ResultType>}
     */
    SearchByArea(data: ISearchByArea, path?: string): Promise<ResultType>;
}
export default ClusterController;
