export interface Session { id: string; namespaces: Namespaces; } export interface Namespaces { account?: NamespacesAccount; store?: Store; public: Record; creditControl?: CreditControl; authentication?: Authentication; profile?: Profile; } export interface NamespacesAccount { id: ID; accountName: AccountName; } export interface AccountName { value: string; } export interface ID { value: string; keepAlive: boolean; } export interface Authentication { storeUserID: AccountName; storeUserEmail: AccountName; } export interface CreditControl { creditAccounts: CreditAccounts; deadlines: Deadlines; minimumInstallmentValue: MinimumInstallmentValue; } export interface CreditAccounts { value: CreditAccountsValue; } export interface CreditAccountsValue { accounts: AccountElement[]; } export interface AccountElement { id: string; availableCredit: number; } export interface Deadlines { value: DeadlinesValue; } export interface DeadlinesValue { deadlines: Deadline[]; } export interface Deadline { paymentOptions: number[]; } export interface MinimumInstallmentValue { value: number; } export interface Profile { id?: AccountName; email?: AccountName; firstName?: AccountName; lastName?: AccountName; phone?: AccountName; document?: AccountName; isAuthenticated?: AccountName; } export interface Store { channel: AccountName; countryCode: AccountName; cultureInfo: AccountName; currencyCode: AccountName; currencySymbol: AccountName; adminCultureInfo: AccountName; }