import React from 'react'; import { CustomizeTheme } from './types'; export interface SplunkThemeProviderProps { family?: 'enterprise' | 'prisma'; colorScheme?: 'dark' | 'light'; density?: 'comfortable' | 'compact'; /** These properties behave the same as themes passed into styled-component's `ThemeProvider` and can be accessed in the same way. * If a component library requires theme variables to be passed through a `ThemeProvider`, such as was the case with `react-ui` `v2.X.X`, they can * be defined here. */ additionalThemeProperties?: Record; /** The passed function customizes theme variables, such as changing the primary interactive color. The function accepts and returns a set of variables. * * The function is memoized, so it is not possible to change these customizations after the initial rendering of a theme variant. * * The function is called separately for each theme variant when required. Multiple themes or variants may render at the same time, such as a * nested `SplunkThemeProvider` setting `density='compact'` for only part of the application. * * If multiple versions of `@splunk/themes` exists in the dependency tree, the function may be called with an unexpected sets of variables. * Ensure only expected values are modified, no variables are added or removed, and types are not changed. */ customizeTheme?: CustomizeTheme; children?: React.ReactNode; } /** SplunkThemeProvider defaults to `prisma` `dark` `compact`, unless the properties have already been set. * * For example, here the nested `SplunkThemeProvider` defaults to `enterprise` `light`: * ```jsx * return ( * * Main part of the page in enterprise-light-comfortable. * * Part of the page in enterprise-light-compact. * * * ) */ export default function SplunkThemeProvider({ family, colorScheme, density, additionalThemeProperties, customizeTheme, ...otherProps }: SplunkThemeProviderProps): JSX.Element;