import { HttpResponse, HttpClient } from '../http'; import { StreamTransport } from '../pipe'; import { IpcBusService, WorkspaceSdkBus } from '../ipc-bus'; import { SessionRequestParams } from './session'; import { Dacs } from '../dacs'; import { ExecutionContainer } from '../constants'; import { StreamLoginParams, socketCreator } from '../delivery/stream'; import { ContainerSessionAuthorize } from './container'; export interface Transport { readonly rdpUrlRoot: string; initialize(): Promise; authorize(authParams: ContainerSessionAuthorize): Promise; cleanUp(): Promise; request(requestParams: SessionRequestParams): Promise>; getStreamTransport(api: string, protocol: string, execEnv?: ExecutionContainer | undefined): () => StreamTransport; getStreamLoginParams(): StreamLoginParams; } export interface TransportState { ready: boolean; error?: Error; } export interface TransportHttpParams { bus?: IpcBusService; httpClient?: HttpClient; appKey: string; } export interface TransportMixParams { bus?: IpcBusService | WorkspaceSdkBus; execEnv?: ExecutionContainer; appKey: string; } export interface StreamingTransport { isRefreshRequired: boolean; getSocketCreators(api: string, protocol: string): Promise; getStreamLoginParams(): StreamLoginParams; } export interface TransportRdpParams { userName?: string; dacs?: Dacs; getAccessToken: () => string; request(requestParams: SessionRequestParams): Promise>; }