export type themeType = {
  [key: string]: string
}
export type themesType = {
  [key: string]: themeType
}
export type UIThemeBaseConfig = {
    type: string
    onSetupCallback?: (loadedTheme: themeType) => void
}
export type UIThemeLocalConfig = UIThemeBaseConfig & {
    type: 'local'
    themeName: string
}
export type UIThemeRemoteConfig = UIThemeBaseConfig & {
    type: 'remote'
    brandingSectionName?: string
    payloadData?: Record<string, unknown>
    apiUrl: string
}

export type UIThemeCustomObjectJsonConfig = UIThemeBaseConfig & {
    type: 'customJson',
    config: themeType
}

export type UiThemeNoneConfig = UIThemeBaseConfig & {
    type: 'none'
}

export declare type UIThemeConfig = UIThemeLocalConfig | UIThemeRemoteConfig | UIThemeCustomObjectJsonConfig | UiThemeNoneConfig
