export { default as LightIcon } from '@mui/icons-material/WbSunnyRounded'; export { default as DarkIcon } from '@mui/icons-material/Brightness2Rounded'; import { UnifiedThemeOptions } from '@backstage/theme'; import * as _mui_material from '@mui/material'; import * as react from 'react'; import { AppTheme } from '@backstage/core-plugin-api'; import * as react_jsx_runtime from 'react/jsx-runtime'; type BackstageThemePalette = UnifiedThemeOptions['palette']; interface RHDHThemePalette { general: { pageInset: string; pageInsetBackgroundColor: string; disabled: string; disabledBackground: string; paperBackgroundImage: string; paperBorderColor: string; popoverBoxShadow: string; cardBackgroundColor: string; cardBorderColor: string; mainSectionBackgroundColor: string; formControlBackgroundColor: string; sidebarBackgroundColor: string; sidebarDividerColor: string; sidebarItemSelectedBackgroundColor: string; tableTitleColor: string; tableSubtitleColor: string; tableColumnTitleColor: string; tableRowHover: string; tableBorderColor: string; tableBackgroundColor: string; tabsLinkHoverBackgroundColor: string; contrastText: string; appBarBackgroundScheme: 'light' | 'dark'; appBarBackgroundColor: string; appBarForegroundColor: string; appBarBackgroundImage: string; starredItemsColor: string; }; primary: { main: string; focusVisibleBorder: string; }; secondary: { main: string; focusVisibleBorder: string; }; cards?: { headerTextColor: string; headerBackgroundColor: string; headerBackgroundImage: string; }; } type ThemeConfigPalette = BackstageThemePalette & { rhdh?: RHDHThemePalette; }; interface ThemeConfigPageTheme { backgroundColor?: string | string[]; colors?: string | string[]; shape?: string; backgroundImage?: string; fontColor?: string; } interface ThemeConfigOptions { components?: 'rhdh' | 'backstage' | 'mui'; rippleEffect?: 'on' | 'off'; paper?: 'patternfly' | 'mui'; buttons?: 'patternfly' | 'mui'; inputs?: 'patternfly' | 'mui'; checkbox?: 'patternfly' | 'mui'; accordions?: 'patternfly' | 'mui'; sidebars?: 'patternfly' | 'mui'; pages?: 'patternfly' | 'mui'; headers?: 'patternfly' | 'mui'; toolbars?: 'patternfly' | 'mui'; dialogs?: 'patternfly' | 'mui'; cards?: 'patternfly' | 'mui'; tables?: 'patternfly' | 'mui'; tabs?: 'patternfly' | 'mui'; appBar?: 'patternfly' | 'mui'; breadcrumbs?: 'patternfly' | 'mui'; } interface ThemeConfig { /** Optional key to load different defaults. Fallbacks to the latest `rhdh` theme if not defined. */ variant?: 'rhdh' | 'backstage'; /** Light or dark theme. Automatically selects `dark` if the theme name contains the keyword "dark". */ mode?: 'light' | 'dark'; palette?: ThemeConfigPalette; fontFamily?: UnifiedThemeOptions['fontFamily']; htmlFontSize?: UnifiedThemeOptions['htmlFontSize']; typography?: UnifiedThemeOptions['typography']; defaultPageTheme?: string; pageTheme?: Record; options?: ThemeConfigOptions; } interface Branding { theme?: { [key: string]: ThemeConfig; }; } interface Config { app: { branding?: Branding; }; } declare const useBranding: () => Branding | undefined; declare const useThemeConfig: (themeName: string) => ThemeConfig; /** Creates a memorized Backstage UnifiedThemeOptions based on the given ThemeConfig. */ declare const useThemeOptions: (themeConfig: ThemeConfig) => UnifiedThemeOptions; declare const lightThemeProvider: (props: { children: react.ReactNode; }) => JSX.Element | null; declare const darkThemeProvider: (props: { children: react.ReactNode; }) => JSX.Element | null; declare const getAllThemes: () => AppTheme[]; declare const useAllThemes: () => AppTheme[]; declare const getThemes: () => AppTheme[]; declare const useThemes: () => AppTheme[]; declare const useLoaderTheme: () => _mui_material.Theme; declare const LogoFull: (props: React.ComponentProps<"svg">) => react_jsx_runtime.JSX.Element; declare const LogoIcon: (props: React.ComponentProps<"svg">) => react_jsx_runtime.JSX.Element; export { type BackstageThemePalette, type Branding, type Config, LogoFull, LogoIcon, type RHDHThemePalette, type ThemeConfig, type ThemeConfigOptions, type ThemeConfigPageTheme, type ThemeConfigPalette, darkThemeProvider, getAllThemes, getThemes, lightThemeProvider, useAllThemes, useBranding, useLoaderTheme, useThemeConfig, useThemeOptions, useThemes };