export interface IPanelConfigModel {
  urls: {
    backendApiUrl: string;
    homeName: string;
    enduserUrl?: string;
  };
  settings: {
    appIdleTimeout: number;
    baseTitle: string;
    defaultLanguage: string;
    minSearchLength: number;
    imagesPath: string;
    logoLight: string | null;
    logoDark: string | null;
    defaultTheme: string;
    dashboardVersion: string;
    availableThemes: string[];
    paginateBy: number;
    referralCookieDays: number;
    requireCardValidationMsg: string;
    reCaptchaSiteKey: string;
    itemsDisplayAsList: boolean;
    openstack: {
      instances: {
        verifyResizeExtraMessage: string;
        shutDownInstanceNote: string;
      };
    };
    billing: {
      currencyDecimalRepresentation: string;
    };
    instanceForm: {
      flavorsAsCards: boolean;
      showRootPasswordField: boolean;
      rootPasswordFieldMandatory: boolean;
      hideNetworksIfOnlyOneAvailable: boolean;
      preselectPublicNetworks: boolean;
      showUserData: boolean;
      hideVolumeSelectionForFlavorsWithDisk: boolean;
      defaultVolumeType: Record<string, string> | null;
    };
    refreshIntervals: {
      defaultInterval: number;
      defaultIntervalShort: number;
      defaultIntervalTab: number;
      clientDetailsInterval?: number;
      operationsInProgressInterval?: number;
      operationsListInterval?: number;
      operationDetailsInterval?: number;
      reportDetailsInterval?: number;
      routerDetailsInterval?: number;
      volumeDetailsBackupsInterval: number;
      volumeDetailsSnapshotsInterval: number;
    };
    messageDuration: number;
    messageWithLinkDuration: number;
    logoutRedirect: null | string;
    tinyMCEOptions?: object;
  };
}
