UNPKG

@twilio/flex-ui

Version:

Twilio Flex UI

79 lines (78 loc) 3.42 kB
import { Action, Dispatch } from "redux"; import { WorkerLogoutPayload } from "../actions/WorkerActions"; import { InsightsServiceStatus } from "../core/Insights/InsightsService.definitions"; import { OAuthLoginHandler } from "../core/OAuthLoginHandler"; import { SSOLoginHandler } from "../core/SSOLoginHandler"; import { SSOTokenPayload } from "../core/TokenStorage"; import { SupportedVDI } from "../vdi/citrix/VDIRecognition"; import type { Config } from "./AppConfig"; import { SingleSessionGuardState } from "./SessionState.definitions"; /** * Login states * @enum {"UNKNOWN" | "LOGGING_IN" | "LOGGED_IN" | "LOGGED_OUT" | "ERROR"} LoginState * @property {"UNKNOWN"} Unknown Unknown * @property {"LOGGING_IN"} LoggingIn LoggingIn * @property {"LOGGED_IN"} LoggedIn LoggedIn * @property {"LOGGED_OUT"} LoggedOut LoggedOut * @property {"ERROR"} Error Error * @memberof AppState */ export declare enum LoginState { Unknown = "UNKNOWN", LoggingIn = "LOGGING_IN", LoggedIn = "LOGGED_IN", LoggedOut = "LOGGED_OUT", Error = "ERROR" } export declare const INSIGHTS_INIT_TIMEOUT = 90000; /** * Active session state * @interface SessionState * @property {string} [identity] identity of a logged-in user * @property {any} [loginError] last error that occurred when logging in * @property {LoginState} [loginState] current state of the session * @property {SSOTokenPayload} [ssoTokenPayload] SSO token payload * @property {boolean} [degraded] Indicates if session is degraded * @category State */ export interface SessionState { readonly identity: string; readonly insightsServiceStatus: InsightsServiceStatus; readonly goodDataServiceStatus: InsightsServiceStatus; readonly loginHandler?: SSOLoginHandler | OAuthLoginHandler; readonly loginError: any; readonly loginState: LoginState; readonly ssoTokenPayload: SSOTokenPayload; readonly singleSessionGuard: SingleSessionGuardState; readonly degraded?: boolean; readonly vdiSupported?: SupportedVDI; } export declare const initialState: SessionState; interface SessionStateAction extends Action { readonly payload?: any; } export declare const ACTION_LOGGED_OUT = "FLEX_ACTION_LOGGED_OUT"; export declare function reduce(state: SessionState, action: SessionStateAction): SessionState; export declare class Actions { private static _dispatcher; private static _updatingClientsToken; static get dispatcher(): Dispatch<any>; static set dispatcher(dispatcher: Dispatch<any>); static init(): void; static invalidateCurrentSession: (otherSessionCookieId: string) => void; static invalidateOtherSessions: () => void; static validateCurrentSession: () => void; static updateDegradedMode: () => void; static alertForMultiSession: (otherSessionSid: string, hasOngoingCall: boolean) => void; static ssoLogin(config?: Config): Promise<void>; static validateSession(): Promise<void>; static updateInsightsServiceStatus(status: InsightsServiceStatus): void; static updateGoodDataServiceStatus(status: InsightsServiceStatus): void; static updateSupportedVDI(vdi: SupportedVDI): void; static handleTokenUpdated: (tokenPayload: SSOTokenPayload) => Promise<void>; static handleTokenExpired(): void; private static initClients; static logout(logoutPayload: WorkerLogoutPayload): Promise<void>; private static shutdown; } export {};