import { DependencyList } from 'react';
import { UseThemeHook } from './use-theme.js';
import '../context-DTdAssyl.js';
import '../types-BK2-7cKa.js';

type UseThemeEffectHook = <T extends string = string>(effect: (theme: T | 'system', resolvedTheme: T) => void | (() => void), deps?: DependencyList) => void;
/**
 * Build a `useThemeEffect` bound to a specific `useTheme`. See `makeUseTheme`.
 */
declare function makeUseThemeEffect(useThemeHook: UseThemeHook): UseThemeEffectHook;
/**
 * Run an effect whenever the theme changes. Unlike a raw `useEffect` based on
 * `useTheme()`, this hook *does not* fire on first mount — it only fires on
 * subsequent theme changes, so it is safe for "on change" side-effects like
 * analytics or server persistence.
 *
 * Return a cleanup function to run on the next change, same as `useEffect`.
 */
declare const useThemeEffect: UseThemeEffectHook;

export { makeUseThemeEffect, useThemeEffect };
export type { UseThemeEffectHook };
