import { TwilioErrorCodes } from "../FlexError"; import { SSOTokenPayload } from "./TokenStorage"; export interface AuthorizeResponse { authenticationCode?: string | string[]; state?: string | string[]; } interface OAuthTokenInfo { expiration: string; flex_instance_sid: string; flex_user_sid: string; identity: string; name_id: string; realm_user_id: string; roles: string[]; worker_sid: string; account_sid: string; } export interface AuthTokenResponse { access_token: string; refresh_token: string; token_info: OAuthTokenInfo; access_token_expires_at?: string; refresh_token_expires_at?: string; } export interface PrivateKeys { codeChallenge: string; codeVerifier: string; nonce: string; state: string; } interface Identity { connection: string; isSocial: boolean; provider: string; user_id: string; } interface NameIDAttributes { Format: string; value: string; } interface User { _id: string; app_metadata: any; authenticationmethod: string; clientID?: string; created_at: string; email: string; full_name: string; global_client_id: string; identities: Identity[]; is_portal_user: boolean; issuer?: string; multifactor?: any[]; name: string; nameIdAttributes: NameIDAttributes; nickname: string; persistent?: any; picture: string; roles: string; sessionIndex?: string; updated_at: string; user_id: string; username: string; user_metadata?: any; } export interface IdToken { aud: string; connection_id: string; connection_metadata: { AccountSid: string; }; connection_name: string; email: string; exp: number; flex_jwe?: SSOTokenPayload; flex_error?: { code: TwilioErrorCodes; status: number; }; iat: number; iss: string; name: string; nickname: string; nonce?: string; picture: string; request_state: { acr_values: any[]; id: string; linking_id: string | null; locale: string; login_hint: string | null; prompt: any[]; protocol: string; redirect_uri: string; requested_scopes: string[]; response_mode: string | null; response_type: string[]; state: string; ui_locales: any[]; }; sid: string; sub: string; updated_at: string; user_object: User; user: User; } export type ConsoleLoginParams = { isConsoleLogin: boolean; accountSid: string | undefined; instanceSid: string | undefined; }; export {};