import type React from "react"; import type { ThemeOptions } from "@mui/material/styles"; import type { Localization } from "@mui/material/locale"; import { Theme } from "@mui/material/styles"; export type ThemeName = "dark" | "light"; export type ThemeConfig = { lightTheme?: ThemeOptions; darkTheme?: ThemeOptions; }; export type ThemeContextValue = { darkMode: boolean; toggleDarkMode: (value?: ThemeContextValue["darkMode"]) => void; theme: Theme; config: Required; }; export type ThemeProviderProps = { children: React.ReactNode; config?: ThemeConfig; }; export type ThemeProviderComponent = (props: ThemeProviderProps) => JSX.Element; export type UseThemeHook = () => ThemeContextValue; export type CreateThemeOptions = { theme: ThemeOptions; isRTL?: boolean; localization?: Localization; }; export type CreateThemeResponse = Theme; export type CreateThemeUtil = (options: CreateThemeOptions) => CreateThemeResponse;