import { Observable } from 'rxjs';
import { AppContext } from './app-context';
import { GatewayCondition } from './gateway-connection';
import { NodeRequestOptions } from './node-connection';
export interface NodeExtensionInstallResult extends GatewayCondition {
    response: any;
}
/**
 * Node extension install class.
 */
export declare class NodeExtensionInstall {
    private appContext;
    private static installUrl;
    /**
     * Initializes a new instance of the NodeExtensionInstall class.
     *
     * @param appContext the application context.
     */
    constructor(appContext: AppContext);
    /**
 * Install a node package of extensions. (elevate the desktop gateway if required.)
 *
 * @param nodeName the name of node.
 * @param extension the name of extension.
 * @param version the version of extension.
 * @param options the node request options (optional).
 */
    install(nodeName: string, extension: string, version: string, options?: NodeRequestOptions): Observable<NodeExtensionInstallResult>;
    /**
     * Install a node package of extensions.(doesn't handle elevation for the desktop mode.)
     *
     * @param nodeName the name of node.
     * @param extension the name of extension.
     * @param version the version of extension.
     * @param options the node request options (optional).
     */
    private installCall;
}
