UNPKG

@ovotech/genesys-web-messaging-tester

Version:
47 lines (46 loc) 2.08 kB
/// <reference types="node" /> /// <reference types="node" /> import { ClientOptions } from 'ws'; import { Response } from './Response'; import { StructuredMessage } from './StructuredMessage'; import { EventEmitter } from 'events'; import { ClientRequestArgs } from 'http'; import { MessageDelayer } from './message-delayer/MessageDelayer'; export interface WebMessengerSession extends EventEmitter { /** * The Web Messenger server can sometimes return responses out of order. To cater for this * we have to have a delay after every message is received before passing it to any listeners * of the implementation. This delay hopefully provides enough time for any messages that should * have preceded the other to be received and ordered. * * This delay should be taken into account for any timeout values of downstream functionality. */ get messageDelayInMs(): number; sendText(message: string): void; close(): void; } export interface SessionConfig { readonly deploymentId: string; readonly region: string; readonly origin?: string | undefined; } export declare function isStructuredMessage(message: Response<unknown>): message is StructuredMessage; /** * @see https://developer.genesys.cloud/api/digital/webmessaging/websocketapi#configure-a-guest-session */ export declare class WebMessengerGuestSession extends EventEmitter { private readonly config; private readonly participantData; private readonly messageDelayer; readonly wsFactory: (url: string, options?: ClientOptions | ClientRequestArgs) => import("ws"); private static readonly debugger; private readonly sessionToken; private readonly ws; constructor(config: SessionConfig, participantData?: Record<string, string>, messageDelayer?: MessageDelayer, wsFactory?: (url: string, options?: ClientOptions | ClientRequestArgs) => import("ws")); get messageDelayInMs(): number; private connected; private processMessage; private messageReceived; sendText(message: string): void; close(): void; }