interface IPlugin { productCode: string; pluginCode: string; name: string; } interface ISubcategory { id: string; title: string; accessibility: { label: string; value: string; }; } interface ICategory { id: string; title: string; icon: string; accessibility: { label: string; value: string; }; subcategories: ISubcategory[]; } interface IFunctionDetail { label: string; icon: string; items: any[]; // Change this type based on the actual structure of 'items' action: string; section: string; reference?: string; } interface ISocialMediaItem { label: string; icon: string; action: string; link: string; trackingReference: string; } interface IContactTabLayout { displayAdvisors: boolean; numAlerts: number; functionDetails: IFunctionDetail[]; serviceHotlines: any[]; // Change this type based on the actual structure of 'serviceHotlines' alerts: any[]; // Change this type based on the actual structure of 'alerts' helpdesk: { title: string; text: string; icon: string; actions: { label: string; action: string; }[]; phoneNumbers: string[]; }; advisors: any[]; // Change this type based on the actual structure of 'advisors' advisorLoading: boolean; chat: { title: string; text: string; icon: string; actions: { label: string; reference: string; action: string; trackingReference: string; icon: string; }[]; }; socialMedia: { title: string; items: ISocialMediaItem[]; }; } interface IProfileTabLayout { name: string; image: string; numAlerts: number; moreInfoUrl: string; functionDetails: IFunctionDetail[]; informationFunctionDetails: IFunctionDetail[]; customer: { name: string; image: string; }; } interface NavigationButton { action: string; icon: string; accessibility: { label: string; }; } interface FloatingNavigationButton { action: string; icon: string; accessibility: { label: string; }; reference: string; label: string; } interface OverviewLayout { navigationButtons: NavigationButton[]; leftNavigationButtons: any[]; // Change this type based on the actual structure floatingNavigationButtons: FloatingNavigationButton[]; } interface BankCode { name: string; bankCode: string; } interface ProductColor { name: string; hexCode: string; hexCodeLight: string; hexCodeDark: string; accessibilityLabel: string; } interface IFitUserStatus { enabled: boolean; optedIn: boolean; onboarded: boolean; } interface IGeorgeIdConfiguration { migrationStatus: string; } interface IPersonetics { consents: string; showConsentsInSettings: boolean; } interface Surveys { availableSurveys: string[]; } interface IFlags { activated: string[]; deactivated: string[]; } export interface IConfig { earliestStandingOrderExecutionDate: string; activePlugins: IPlugin[]; customerName: string; hasImage: boolean; juniorProfileUser: boolean; customerImage: string; authorizationType: string; mandatoryMessages: any[]; // Change this type based on the actual structure of 'mandatoryMessages' temporaryMessages: any[]; // Change this type based on the actual structure of 'temporaryMessages' news: any[]; // Change this type based on the actual structure of 'news' categories: { outgoing: ICategory[]; incoming: ICategory[]; }; consents: any[]; // Change this type based on the actual structure of 'consents' productColors: ProductColor[]; colors: ProductColor[]; datePattern: string; blacklistedAccounts: any[]; // Change this type based on the actual structure of 'blacklistedAccounts' bankCodes: BankCode[]; bankHolidays: string[]; billPaymentsTemplates: any[]; // Change this type based on the actual structure of 'billPaymentsTemplates' store: { path: string; numAlerts: number; }; contactTabLayout: IContactTabLayout; profileTabLayout: IProfileTabLayout; overviewLayout: OverviewLayout; experiments: any[]; // Change this type based on the actual structure of 'experiments' userAllowedToTrade: boolean; dateioAvailable: boolean; v2OverviewEnabled: boolean; multipleProfilesUser: boolean; fitUserStatus: IFitUserStatus; georgeIdConfiguration: IGeorgeIdConfiguration; personetics: IPersonetics; surveys: Surveys; amountConversions: any[]; // Change this type based on the actual structure of 'amountConversions' flags: IFlags; customerId: string; adFormRequestEnabled: boolean; currentTimeUtc: string; }