import { DiamondEnvOptions, IDiamondEnv } from './interface';
declare const Base: any;
export declare class DiamondEnv extends Base implements IDiamondEnv {
    private uuid;
    private isClose;
    private isLongPulling;
    private subscriptions;
    private currentServer;
    /**
     * Diamond Client.
     *
     * @param {Object} options
     *  - {Number} [refreshInterval] data refresh interval time, default is 30000 ms
     *  - {Number} [requestTimeout] diamond request timeout, default is 5000 ms
     *  - {String} [unit] unit name
     *  - {HttpClient} httpclient http request client
     *  - {Snapshot} snapshot snapshot instance
     * @constructor
     */
    constructor(options?: DiamondEnvOptions);
    readonly appName: any;
    readonly appKey: any;
    readonly secretKey: any;
    readonly snapshot: any;
    readonly serverMgr: any;
    readonly unit: any;
    /**
     * HTTP 请求客户端
     * @property {HttpClient} DiamondEnv#httpclient
     */
    readonly httpclient: any;
    close(): void;
    /**
     * 更新 当前服务器
     */
    updateCurrentServer(): Promise<void>;
    /**
     * 订阅
     * @param {Object} info
     *   - {String} dataId - id of the data you want to subscribe
     *   - {String} [group] - group name of the data
     * @param {Function} listener - listener
     * @return {DiamondEnv} self
     */
    subscribe(info: any, listener: any): this;
    /**
     * 同步配置
     * @param {Array} list - 需要同步的配置列表
     * @return {void}
     */
    private syncConfigs;
    /**
     * 请求
     * @param {String} path - 请求 path
     * @param {Object} [options] - 参数
     * @return {String} value
     */
    request(path: any, options?: {
        encode?: boolean;
        method?: string;
        data?: any;
        timeout?: number;
        headers?: any;
    }): Promise<any>;
    /**
     * 开启长轮询
     * @return {void}
     * @private
     */
    private startLongPulling;
    private checkServerConfigInfo;
    private parseUpdateDataIdResponse;
    /**
     * 退订
     * @param {Object} info
     *   - {String} dataId - id of the data you want to subscribe
     *   - {String} group - group name of the data
     * @param {Function} listener - listener
     * @return {DiamondEnv} self
     */
    unSubscribe(info: any, listener?: any): this;
    /**
     * 默认异常处理
     * @param {Error} err - 异常
     * @return {void}
     * @private
     */
    _error(err: any): void;
    private formatKey;
    private getSnapshotKey;
    /**
     * 获取配置
     * @param {String} dataId - id of the data
     * @param {String} group - group name of the data
     * @return {String} value
     */
    getConfig(dataId: any, group: any): Promise<any>;
    /**
     * 查询租户下的所有的配置
     * @return {Array} config
     */
    getConfigs(): Promise<any[]>;
    getAllConfigInfoByTenantInner(pageNo: any, pageSize: any): Promise<any>;
    /**
     * 发布配置
     * @param {String} dataId - id of the data
     * @param {String} group - group name of the data
     * @param {String} content - config value
     * @return {Boolean} success
     */
    publishSingle(dataId: any, group: any, content: any): Promise<boolean>;
    /**
     * 删除配置
     * @param {String} dataId - id of the data
     * @param {String} group - group name of the data
     * @return {Boolean} success
     */
    remove(dataId: any, group: any): Promise<boolean>;
    publishAggr(dataId: any, group: any, datumId: any, content: any): Promise<boolean>;
    removeAggr(dataId: any, group: any, datumId: any): Promise<boolean>;
    /**
     * 批量获取配置
     * @param {Array} dataIds - data id array
     * @param {String} group - group name of the data
     * @return {Array} result
     */
    batchGetConfig(dataIds: any, group: any): Promise<any>;
    /**
     * 批量查询
     * @param {Array} dataIds - data id array
     * @param {String} group - group name of the data
     * @return {Object} result
     */
    batchQuery(dataIds: any, group: any): Promise<any>;
}
export {};
