@twilio/flex-ui
Version:
Twilio Flex UI
298 lines (297 loc) • 10.4 kB
TypeScript
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;