/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ declare module 'vscode' { // tunnels @alexr00 export interface TunnelOptions { remoteAddress: { port: number; host: string }; // The desired local port. If this port can't be used, then another will be chosen. localAddressPort?: number; label?: string; /** * @deprecated Use privacy instead */ public?: boolean; privacy?: string; protocol?: string; } export interface TunnelDescription { remoteAddress: { port: number; host: string }; //The complete local address(ex. localhost:1234) localAddress: { port: number; host: string } | string; /** * @deprecated Use privacy instead */ public?: boolean; privacy?: string; // If protocol is not provided it is assumed to be http, regardless of the localAddress. protocol?: string; } export interface Tunnel extends TunnelDescription { // Implementers of Tunnel should fire onDidDispose when dispose is called. readonly onDidDispose: Event; dispose(): void | Thenable; } export namespace workspace { /** * Forwards a port. If the current resolver implements RemoteAuthorityResolver:forwardPort then that will be used to make the tunnel. * By default, openTunnel only support localhost; however, RemoteAuthorityResolver:tunnelFactory can be used to support other ips. * * @throws When run in an environment without a remote. * * @param tunnelOptions The `localPort` is a suggestion only. If that port is not available another will be chosen. */ export function openTunnel(tunnelOptions: TunnelOptions): Thenable; /** * Gets an array of the currently available tunnels. This does not include environment tunnels, only tunnels that have been created by the user. * Note that these are of type TunnelDescription and cannot be disposed. */ export let tunnels: Thenable; /** * Fired when the list of tunnels has changed. */ export const onDidChangeTunnels: Event; } }