@ovotech/genesys-web-messaging-tester
Version:
47 lines (46 loc) • 2.08 kB
TypeScript
/// <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;
}