/** * User Permissions * @typedef {object} Permissions * @property {boolean} teamsView permission to view teams page * @property {boolean} queueStatsView permission to view queues-stats page * @property {boolean} agentDesktopView permission to view agent-desktop page * @property {boolean} editSkills permission to edit other worker's skills * @property {boolean} editStatus permission to edit other worker's status * @property {boolean} monitorChat permission to monitor ongoing chat * @property {boolean} monitorCall permission to monitor ongoing call * @property {boolean} seeTaskInfo permission to see the info of ongoing task on teams view page * @property {boolean} selfEditStatus permission to edit own status * @property {boolean} readAdmin permission to view admin page * @property {boolean} writeAdmin permission to update settings on admin page */ export interface Permissions { teamsView: boolean; queueStatsView: boolean; agentDesktopView: boolean; editSkills: boolean; editStatus: boolean; monitorChat: boolean; monitorCall: boolean; seeTaskInfo: boolean; selfEditStatus: boolean; readAdmin: boolean; writeAdmin: boolean; } /** * SSO Token Payload * @typedef {object} SSOTokenPayload * @property {string} identity identity * @property {string[]} roles roles * @property {string} token access token * @property {string} expiration token expiration date * @property {Permissions} permissions all permissions user have * @property {string} accountSid Flex Account SID * @property {string} accessTokenExpiresAt timestamp when access token expires * @property {string} refreshTokenExpiresAt timestamp when refresh token expires (inactivity expiry) * @memberof AppState */ export interface SSOTokenPayload { expiration: string; identity: string; roles: string[]; token: string; refreshToken?: string; permissions: Permissions; flexUserSid: string; accountSid?: string; accessTokenExpiresAt?: string; refreshTokenExpiresAt?: string; } export declare const TOKEN_LOCAL_STORAGE_KEY = "TWILIO_FLEX_SSO"; export declare const TokenStorage: { set(value: SSOTokenPayload): Promise; get(): SSOTokenPayload | undefined; clear(): void; getSessionStorageEnabledState(): boolean | undefined; setSessionStorageEnabledState(value: boolean | undefined): boolean | undefined; };