@microsoft/dev-tunnels-ssh
Version:
SSH library for Dev Tunnels
44 lines • 2 kB
TypeScript
import { SshServiceConstructor } from './sshService';
/**
* Decorator applied to suclasses of `SshService` that declares how the service gets activated.
*/
export declare function serviceActivation(activation: ServiceActivation): (constructor: Function) => void;
/**
* Rules for how a service gets activated for an SSH session.
*/
export interface ServiceActivation {
/**
* Activate the service when a service request is received for the specified name.
*
* Only server-side services can be activated using a service request from the client.
* (Other activation methods can work in either direction.)
*/
readonly serviceRequest?: string;
/**
* Activate the service when a session request is received for the specified request type.
*/
readonly sessionRequest?: string;
/**
* Activate the service when a request is received to open a channel of the specified
* channel type.
*/
readonly channelType?: string;
/**
* Activate the service when a channel request is received for the specified channel
* request type.
*
* If both `channelType` and `channelRequest` are set, then the service is activated only
* when the specified request is received on the specified channel type.
*/
readonly channelRequest?: string;
}
/**
* Locates a service type in configuration, using a predicate to check service activation
* attributes.
*
* @param serviceConfigs Service configuration dictionary from `SshSessionConfiguration.services`.
* @param predicate Function to test whether a service activation attribute matches some condition.
* @returns Service type (constructor), or null if no service type satisfies the predicate.
*/
export declare function findService(serviceConfigs: Map<SshServiceConstructor, any>, predicate: (activation: ServiceActivation) => boolean): SshServiceConstructor | null;
//# sourceMappingURL=serviceActivation.d.ts.map