import * as react_jsx_runtime from 'react/jsx-runtime';
import * as React from 'react';
import { Dispatch, SetStateAction, PropsWithChildren } from 'react';

declare const themes: readonly ["light", "dark", "system"];
type ThemeType = typeof themes[number];
type ResolvedTheme = Exclude<ThemeType, 'system'>;
declare const ThemeUtil: {
    themes: readonly ["light", "dark", "system"];
};
type ThemeContextType = {
    theme: ThemeType;
    resolvedTheme: ResolvedTheme;
    setTheme: Dispatch<SetStateAction<ThemeType>>;
};
declare const ThemeContext: React.Context<ThemeContextType>;
type ThemeProviderProps = {
    /**
     * Only set this if you want to control the theme yourself
     */
    theme?: ThemeType;
};
declare const ThemeProvider: ({ children, theme }: PropsWithChildren<ThemeProviderProps>) => react_jsx_runtime.JSX.Element;
declare const useTheme: () => ThemeContextType;

export { type ResolvedTheme, ThemeContext, ThemeProvider, type ThemeType, ThemeUtil, useTheme };
