import { Dacs } from '../dacs'; import { SessionDefinition, SessionRequiredParams } from './session'; export type PlatformSessionParamsAll = Partial; export type PlatformSessionParams = (HostParams | RdpParams | CombinedParams) & AppName; export type CombinedParams = RdpParams & HostParams; export type RdpParams = RdpParamsCommon & (PasswordAuth | ClientCredentialsAuth); interface RdpParamsCommon extends SessionRequiredParams { readonly scope?: string; readonly takeSignOnControl?: boolean; readonly dacs?: Dacs; } export interface AppName { readonly appName?: string; } interface PasswordAuth { readonly userName: string; readonly password: string; readonly clientId?: never; readonly clientSecret?: never; } interface ClientCredentialsAuth { readonly clientSecret: string; readonly clientId: string; readonly userName?: never; readonly password?: never; } export interface HostParams extends SessionRequiredParams { readonly host?: string; readonly dacs?: Dacs; } export interface PlatformSession { Definition(params: PlatformSessionParams): SessionDefinition; } export {};