import { ThemingProps, StyleObjectOrFn, SystemStyleInterpolation, PartsStyleInterpolation, SemanticValue, Pseudos } from '@chakra-ui/styled-system'; import { Styles } from '@chakra-ui/theme-tools'; type ColorMode = "light" | "dark"; type Dict = Record; type ColorModeOptions = { initialColorMode?: "light" | "dark" | "system"; useSystemColorMode?: boolean; disableTransitionOnChange?: boolean; }; type RecursiveProperty = RecursiveObject | T; interface RecursiveObject { [property: string]: RecursiveProperty; } interface ThemeConfig extends ColorModeOptions { cssVarPrefix?: string; } type ThemeTransitions = RecursiveObject & { property: RecursiveObject; easing: RecursiveObject; duration: RecursiveObject; }; interface ColorHues { 50: string; 100: string; 200: string; 300: string; 400: string; 500: string; 600: string; 700: string; 800: string; 900: string; } type Colors = RecursiveObject> | string>; type ThemeDirection = "ltr" | "rtl"; interface ComponentDefaultProps extends Omit, Dict { } interface ThemeComponentProps extends Omit { colorMode: ColorMode; theme: T; [x: string]: any; } type ThemeComponentFunction = (props: ThemeComponentProps) => S; type ThemingPropsThunk = S | ThemeComponentFunction; interface SystemStyleObjectRecord { [key: string]: StyleObjectOrFn; } interface ComponentSingleStyleConfig { parts?: never; baseStyle?: SystemStyleInterpolation; sizes?: Record; variants?: Record; defaultProps?: any; } interface ComponentMultiStyleConfig { parts: string[]; baseStyle?: PartsStyleInterpolation; sizes?: Record; variants?: Record; defaultProps?: any; } type ComponentStyleConfig = ComponentSingleStyleConfig | ComponentMultiStyleConfig; interface ThemeComponents { [componentName: string]: ComponentStyleConfig; } interface Typography { fonts: RecursiveObject; fontSizes: RecursiveObject; fontWeights: RecursiveObject; letterSpacings: RecursiveObject; lineHeights: RecursiveObject; } interface Foundations extends Typography { borders: RecursiveObject; breakpoints: Dict; colors: Colors; radii: RecursiveObject; shadows: RecursiveObject; sizes: RecursiveObject; space: RecursiveObject; transition: ThemeTransitions; zIndices: RecursiveObject; } interface ChakraTheme extends Foundations { semanticTokens?: Partial>>>; components: ThemeComponents; config: ThemeConfig; direction: ThemeDirection; styles: Styles; layerStyles?: SystemStyleObjectRecord; textStyles?: SystemStyleObjectRecord; } export { ChakraTheme, ColorHues, Colors, ComponentDefaultProps, ComponentMultiStyleConfig, ComponentSingleStyleConfig, ComponentStyleConfig, RecursiveObject, RecursiveProperty, SystemStyleObjectRecord, ThemeComponentFunction, ThemeComponentProps, ThemeComponents, ThemeConfig, ThemeDirection, ThemeTransitions, ThemingPropsThunk };