UNPKG

@twilio/flex-ui

Version:

Twilio Flex UI

298 lines (297 loc) 10.4 kB
import { EventEmitter } from "events"; import { Activity } from "twilio-taskrouter"; import { NotesSubmittedEventPayload } from "./components/canvas/TaskWrapupPanel/TaskWrapupPanel.definitions"; import { SSOTokenPayload } from "./core/TokenStorage"; import { FlexError } from "./FlexError"; import { ITask } from "./models"; /** * Events emitted by the Flex Manager * * @enum * @category Events * @namespace FlexEvent * @docname Flex Events * @hideconstructor */ export declare enum FlexEvent { /** * View resized * * @name FlexEvent.viewResized * @example * import { Manager } from "@twilio/flex-ui"; * const manager = Manager.getInstance(); * manager.events.addListener("viewResized", () => {}); */ viewResized = "viewResized", /** * Flex splitter resized * * @name FlexEvent.flexSplitterResize * @example * import { Manager } from "@twilio/flex-ui"; * const manager = Manager.getInstance(); * manager.events.addListener("flexSplitterResize", () => {}); */ flexSplitterResize = "flexSplitterResize", /** * User logged in. Fired during @see {Manager} creation * * @name FlexEvent.userLoggedIn * @example * import * as Flex from "@twilio/flex-ui"; * Flex.Manager.events.addListener("userLoggedIn", () => {}); * // Note: since the userLoggedIn event occurs before instantiation of manager, listeners for this event are added to the class itself. */ userLoggedIn = "userLoggedIn", /** * Selected view changed * * @name FlexEvent.selectedViewChanged * @param {string} viewName name of the view * @example * import { Manager } from "@twilio/flex-ui"; * const manager = Manager.getInstance(); * manager.events.addListener("selectedViewChanged", (viewName) => {}); */ selectedViewChanged = "selectedViewChanged", /** * Token updated * * @name FlexEvent.tokenUpdated * @param {SSOTokenPayload} tokenPayload new token payload * @example * import { Manager } from "@twilio/flex-ui"; * const manager = Manager.getInstance(); * manager.events.addListener("tokenUpdated", (tokenPayload) => {}); */ tokenUpdated = "tokenUpdated", /** * Token expired * * @name FlexEvent.tokenExpired * @example * import { Manager } from "@twilio/flex-ui"; * const manager = Manager.getInstance(); * manager.events.addListener("tokenExpired", () => {}); */ tokenExpired = "tokenExpired", /** * All plugins are loaded * * @name FlexEvent.pluginsLoaded * @example * import * as Flex from "@twilio/flex-ui"; * Flex.Manager.events.addListener("pluginsLoaded", () => {}); * // Note: since the pluginsLoaded event occurs before instantiation of manager, listeners for this event are added to the class itself. */ pluginsLoaded = "pluginsLoaded", /** * All plugins are initialized * * @name FlexEvent.pluginsInitialized * @example * import { Manager } from "@twilio/flex-ui"; * const manager = Manager.getInstance(); * manager.events.addListener("pluginsInitialized", () => {}); */ pluginsInitialized = "pluginsInitialized", /** * Report issues on chat channel joining for agent * * @name FlexEvent.chatChannelJoining * @example * import { Manager } from "@twilio/flex-ui"; * const manager = Manager.getInstance(); * manager.events.addListener("chatChannelJoining", () => {}); */ chatChannelJoining = "chatChannelJoining", /** * Connection status is changed * * @name FlexEvent.connectionStateChanged * @example * import { Manager } from "@twilio/flex-ui"; * const manager = Manager.getInstance(); * manager.events.addListener("connectionStateChanged", () => {}); */ connectionStateChanged = "connectionStateChanged", /** * Generic error has been thrown * * @name FlexEvent.error * @example * import { Manager } from "@twilio/flex-ui"; * const manager = Manager.getInstance(); * manager.events.addListener("flexError", () => {}); */ error = "flexError", /** * Emitted when SingleSessionGuard validate current Flex session * * @name FlexEvent.sessionValidated * @example * import { Manager } from "@twilio/flex-ui"; * const manager = Manager.getInstance(); * manager.events.addListener("sessionValidated", () => {}); */ sessionValidated = "sessionValidated", /** * Emitted when a SDK clients get shut down * * @name FlexEvent.sessionInvalidated * @example * import { Manager } from "@twilio/flex-ui"; * const manager = Manager.getInstance(); * manager.events.addListener("sessionInvalidated", () => {}); */ sessionInvalidated = "sessionInvalidated", /** * Emitted when a worker receives a new task * * @name FlexEvent.taskReceived * @example * import { Manager } from "@twilio/flex-ui"; * const manager = Manager.getInstance(); * manager.events.addListener("taskReceived", (task: ITask) => {}); */ taskReceived = "taskReceived", /** * Emitted when the worker's activity changes * * @name FlexEvent.workerActivityUpdated * @example * import { Manager } from "@twilio/flex-ui"; * const manager = Manager.getInstance(); * manager.events.addListener("workerActivityUpdated", (activity: Activity, allActivities: Map<string, Activity>) => {}); */ workerActivityUpdated = "workerActivityUpdated", /** * Emitted when the worker's attributes changes * * @name FlexEvent.workerAttributesUpdated * @example * import { Manager } from "@twilio/flex-ui"; * const manager = Manager.getInstance(); * manager.events.addListener("workerAttributesUpdated", (newAttributes: Record<string, any>) => {}); */ workerAttributesUpdated = "workerAttributesUpdated", /** * Emitted when the worker's task status gets updated * * @name FlexEvent.taskUpdated * @example * import { Manager } from "@twilio/flex-ui"; * const manager = Manager.getInstance(); * manager.events.addListener("taskUpdated", (task:ITask) => {}); */ taskUpdated = "taskUpdated", /** * Emitted when the worker's task gets set to 'accepted' * * @name FlexEvent.taskAccepted * @example * import { Manager } from "@twilio/flex-ui"; * const manager = Manager.getInstance(); * manager.events.addListener("taskAccepted", (task:ITask) => {}); */ taskAccepted = "taskAccepted", /** * Emitted when the worker's task gets set to 'canceled' * * @name FlexEvent.taskCanceled * @example * import { Manager } from "@twilio/flex-ui"; * const manager = Manager.getInstance(); * manager.events.addListener("taskCanceled", (task:ITask) => {}); */ taskCanceled = "taskCanceled", /** * Emitted when the worker's task gets set to 'completed' * * @name FlexEvent.taskCompleted * @example * import { Manager } from "@twilio/flex-ui"; * const manager = Manager.getInstance(); * manager.events.addListener("taskCompleted", (task:ITask) => {}); */ taskCompleted = "taskCompleted", /** * Emitted when the worker's task gets set to 'rejected' * * @name FlexEvent.taskRejected * @example * import { Manager } from "@twilio/flex-ui"; * const manager = Manager.getInstance(); * manager.events.addListener("taskRejected", (task:ITask) => {}); */ taskRejected = "taskRejected", /** * Emitted when the worker's task gets set to 'rescinded' * * @name FlexEvent.taskRescinded * @example * import { Manager } from "@twilio/flex-ui"; * const manager = Manager.getInstance(); * manager.events.addListener("taskRescinded", (task:ITask) => {}); */ taskRescinded = "taskRescinded", /** * Emitted when the worker's task gets set to 'timeout' * * @name FlexEvent.taskTimeout * @example * import { Manager } from "@twilio/flex-ui"; * const manager = Manager.getInstance(); * manager.events.addListener("taskTimeout", (task:ITask) => {}); */ taskTimeout = "taskTimeout", /** * Emitted when the worker's task gets set to 'wrapup' * * @name FlexEvent.taskWrapup * @example * import { Manager } from "@twilio/flex-ui"; * const manager = Manager.getInstance(); * manager.events.addListener("taskWrapup", (task:ITask) => {}); */ taskWrapup = "taskWrapup", /** * Emitted when Agent Copilot Wrap-up Notes are submitted * * @since 2.9.0 * @name FlexEvent.notesSubmitted * @example * import { Manager } from "@twilio/flex-ui"; * const manager = Manager.getInstance(); * manager.events.addListener("notesSubmitted", (notes: NotesSubmittedEventPayload) => {}); */ notesSubmitted = "notesSubmitted" } export declare enum FlexConnectionStatus { connected = "connected", notConnected = "notConnected" } export declare class FlexEventEmitter extends EventEmitter { constructor(); emit(event: FlexEvent, ...args: Array<any>): boolean; emitSplitterResize(): void; emitViewResized(windowInnerWidth: number): void; emitUserLoggedIn(): void; emitSelectedViewChanged: (newViewName: string) => void; emitTokenUpdated(tokenPayload: SSOTokenPayload): void; emitTokenExpired(): void; emitPluginsLoaded(): void; emitPluginsInitialized(): void; emitChatChannelJoining(status: string): void; emitConnectionStateChanged(connectionState: FlexConnectionStatus): void; emitError(error: FlexError): void; emitSessionInvalidated(): void; emitSessionValidated(): void; emitTaskReceived(task: ITask): void; emitWorkerActivityUpdated(activity: Activity, allActivities: Map<string, Activity>): void; emitWorkerAttributesUpdated(newAttributes: Record<string, any>): void; emitTaskUpdated(task: ITask, event: string): void; emitNotesSubmitted(notes: NotesSubmittedEventPayload): void; } export declare const getProxiedFlexEventEmitter: (instance: FlexEventEmitter) => any;