import { Http, Response, RequestOptionsArgs } from '@angular/http';
import { IConnectionManager } from 'com.phloxui';
import { BackgroundProcessManager } from 'com.phloxui';
import { ConnectionManager } from 'com.phloxui';
import { AbstractServerResource } from 'com.phloxui';
/**
 * <p style="text-indent: 2em;">
 * A <code>ng</code> service class implementing [[InstanceConnectionManager]] service interface. Please see [[InstanceConnectionManager]] for more details.
 * </p>
 *
 * @author shiorin, tee4cute
 */
export declare class InstanceConnectionManager implements IConnectionManager {
    private instanceConnectionManagerMap;
    private connectionManager;
    private http;
    private bgProcessMgr;
    private seletedInstanceId;
    private name;
    private testMode;
    private testData;
    constructor(connectionManager: ConnectionManager, http: Http, bgProcessMgr: BackgroundProcessManager, testMode: boolean, testData: any);
    private getNodes(instanceUUID);
    /**
     * ## setup instance: generate connectionManager by instanceUUID and cache in map
     */
    setUpInstance(instanceUUID: string, loginData?: any): Promise<any>;
    /**
     * ## setup instances: generate connectionManager by instanceUUIDs and cache in map
     */
    setUpInstances(instances: string[]): Promise<any[]>;
    /**
     * ## remove instance by instanceUUID from map
     */
    tearDownInstance(instanceUUID: string): void;
    /**
     * ## remove instance instanceUUID from map
     */
    getInstanceConnectionManager(instanceUUID?: string): IConnectionManager;
    selectInstance(instanceUUID: string): void;
    get(url: string, requestOptionsArgs: RequestOptionsArgs): Promise<any>;
    getWithHttpInfo(url: string, requestOptionsArgs: RequestOptionsArgs): Promise<Response>;
    post(url: string, body: any, requestOptionsArgs: RequestOptionsArgs): Promise<any>;
    postWithHttpInfo(url: string, body: any, requestOptionsArgs: RequestOptionsArgs): Promise<Response>;
    put(url: string, body: any, requestOptionsArgs: RequestOptionsArgs): Promise<any>;
    putWithHttpInfo(url: string, body: any, requestOptionsArgs: RequestOptionsArgs): Promise<Response>;
    delete(url: string, requestOptionsArgs: RequestOptionsArgs): Promise<any>;
    deleteWithHttpInfo(url: string, requestOptionsArgs: RequestOptionsArgs): Promise<Response>;
    patch(url: string, body: any, requestOptionsArgs: RequestOptionsArgs): Promise<any>;
    patchWithHttpInfo(url: string, body: any, requestOptionsArgs: RequestOptionsArgs): Promise<Response>;
    head(url: string, requestOptionsArgs: RequestOptionsArgs): Promise<any>;
    headWithHttpInfo(url: string, requestOptionsArgs: RequestOptionsArgs): Promise<Response>;
    options(url: string, requestOptionsArgs: RequestOptionsArgs): Promise<any>;
    optionsWithHttpInfo(url: string, requestOptionsArgs: RequestOptionsArgs): Promise<Response>;
    request(url: string, requestOptionsArgs: RequestOptionsArgs): Promise<any>;
    requestWithHttpInfo(url: string, requestOptionsArgs: RequestOptionsArgs): Promise<Response>;
    getRunningProcessesCount(): number;
    getRunningProcesses(): any[];
    getConnectionQuality(): number;
    setBaseURLs(urls: string[]): void;
    resetBaseURLs(): void;
    setDefaultHeader(key: string, value: string): void;
    removeDefaultHeader(key: string): void;
    resetDefaultHeaders(): void;
    setSearch(key: string, value: any): void;
    removeSearch(key: string): void;
    resetSearch(): void;
    setParam(key: string, value: any): void;
    removeParam(key: string): void;
    resetParams(): void;
    getName(): string;
    setName(name: string): void;
    createResource<R extends AbstractServerResource>(type: new (conMgr: IConnectionManager) => R): R;
}
