interface ILLMChannel { registerAndConnect: ( locusUrl: string, datachannelUrl: string, datachannelToken?: string, sessionId?: string ) => Promise; isConnected: (sessionId?: string) => boolean; getBinding: (sessionId?: string) => string; getLocusUrl: (sessionId?: string) => string; getDatachannelUrl: (sessionId?: string) => string; disconnectLLM: (options: {code: number; reason: string}, sessionId?: string) => Promise; disconnectAllLLM: (options?: {code: number; reason: string}) => Promise; getAllConnections: () => Map< string, { webSocketUrl?: string; binding?: string; locusUrl?: string; datachannelUrl?: string; datachannelToken?: string; } >; } export enum DataChannelTokenType { Default = 'llm-default-session', PracticeSession = 'llm-practice-session', } // eslint-disable-next-line import/prefer-default-export export type {ILLMChannel};