/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
import { ILogService } from "../../log/common/log.mjs";
import { ISharedProcessTunnel, ISharedProcessTunnelService } from "../../remote/common/sharedProcessTunnelService.mjs";
import { ISharedTunnelsService } from "../common/tunnel.mjs";
import { IAddress } from "../../remote/common/remoteAgentConnection.mjs";
import { Disposable } from "../../../base/common/lifecycle.mjs";
export declare class SharedProcessTunnelService extends Disposable implements ISharedProcessTunnelService {
    private readonly _tunnelService;
    private readonly _logService;
    _serviceBrand: undefined;
    private static _lastId;
    private readonly _tunnels;
    private readonly _disposedTunnels;
    constructor(_tunnelService: ISharedTunnelsService, _logService: ILogService);
    dispose(): void;
    createTunnel(): Promise<{
        id: string;
    }>;
    startTunnel(authority: string, id: string, tunnelRemoteHost: string, tunnelRemotePort: number, tunnelLocalPort: number | undefined, elevateIfNeeded: boolean | undefined): Promise<ISharedProcessTunnel>;
    setAddress(id: string, address: IAddress): Promise<void>;
    destroyTunnel(id: string): Promise<void>;
}
