UNPKG

@yext/chat-headless

Version:

A state manager library powered by Redux for Yext Chat integrations

54 lines 2.02 kB
import { MessageRequest, MessageResponse } from "@yext/chat-core"; import { ChatClient } from "./ChatClient"; /** * An event-driven client for processing user message and provide responses * by emitting and listening to events. * * @public */ export interface ChatEventClient { /** * Initializes the client, using credentials and data in the provided message to setup a chat session. * * @param messageResponse - The message response that initiated the handoff to the chat client. */ init(messageResponse: MessageResponse): Promise<any>; /** * Registers an event listener for a specified event. * Supported events are: * - `message`: A new message has been received. * - `typing`: The agent is typing. * - `close`: The chat session has been closed. * * @param eventName - The name of the event to listen to. * @param cb - The callback function to be executed when the event is triggered. */ on(eventName: "message" | "typing" | "close", cb: (data: any) => void): void; /** * Emits an event with the specified name and data, triggering all registered listeners for that event. * * @param eventName - The name of the event to emit. * @param data - The data to be passed to the event listeners. */ emit(eventName: string, data: any): void; /** * Processes a message request. The response should be emitted as a message event. * * @param request - The message request to process. */ processMessage(request: MessageRequest): Promise<void>; /** * Provide the current chat session. */ getSession(): any; /** * Reset the current chat session. */ resetSession(): void; /** * Reinitialize the session using existing session data. */ reinitializeSession(credentials: any): Promise<void>; } export declare function isChatEventClient(client: ChatClient): client is ChatEventClient; //# sourceMappingURL=ChatEventClient.d.ts.map