/*---------------------------------------------------------------------------------------------
 *  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 '@sussudio/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>;
}
