/// import CancellationToken from 'cancellationtoken'; import { IDisposable } from './IDisposable'; import { IRemoteServiceBroker } from './IRemoteServiceBroker'; import { ServiceBrokerEmitter, IServiceBroker } from './IServiceBroker'; import { MultiplexingStream } from 'nerdbank-streams'; import { RemoteServiceConnectionInfo } from './RemoteServiceConnectionInfo'; import { ServiceActivationOptions } from './ServiceActivationOptions'; import { ServiceBrokerClientMetadata } from './ServiceBrokerClientMetadata'; import { ServiceMoniker } from './ServiceMoniker'; import { RpcEventServer } from './ServiceRpcDescriptor'; declare const MultiplexingRelayServiceBroker_base: new () => ServiceBrokerEmitter; export declare class MultiplexingRelayServiceBroker extends MultiplexingRelayServiceBroker_base implements IRemoteServiceBroker, RpcEventServer, IDisposable { private readonly serviceBroker; private readonly multiplexingStreamWithClient; private readonly multiplexingStreamWithRemoteClientOwned; private static readonly _rpcEventNames; private readonly channelsOfferedToClient; readonly completion: Promise; readonly rpcEventNames: readonly string[]; private disposed; constructor(serviceBroker: IServiceBroker, multiplexingStreamWithClient: MultiplexingStream, multiplexingStreamWithRemoteClientOwned: boolean); /** * Initializes a new instance of the [MultiplexingRelayServiceBroker](#MultiplexingRelayServiceBroker) * and establishes a [MultiplexingStream](#MultiplexingStream) protocol with the client over the given stream. * @param serviceBroker A broker for the services to be relayed. * @param duplexStreamWithClient * The duplex stream over which the client will make RPC calls to the returned [IRemoteServiceBroker](#IRemoteServiceBroker) instance. * A multiplexing stream will be established on this stream and the client is expected to accept an offer for a channel with an empty string for a name. * This object is considered "owned" by the returned [MultiplexingRelayServiceBroker](#MultiplexingRelayServiceBroker) and will be disposed when the returned value is disposed, * or disposed before this method throws. * @param cancellationToken A cancellation token * @returns A [MultiplexingRelayServiceBroker](#MultiplexingRelayServiceBroker) that provides access to remote services, all over a multiplexing stream. * @remarks The [RemoteServiceBroker](#RemoteServiceBroker) is used as the wire protocol. */ static connectToServer(serviceBroker: IServiceBroker, duplexStreamWithClient: NodeJS.ReadWriteStream, cancellationToken?: CancellationToken): Promise; handshake(clientMetadata: ServiceBrokerClientMetadata, cancellationToken?: CancellationToken): Promise; requestServiceChannel(serviceMoniker: ServiceMoniker, options?: ServiceActivationOptions | undefined, cancellationToken?: CancellationToken | undefined): Promise; cancelServiceRequest(serviceRequestId: string, cancellationToken?: CancellationToken | undefined): Promise; dispose(): void; private onAvailabilityChanged; } export {};