/**
 * Color mode preference options for the color mode system
 *
 * Controls how the application determines the active color mode:
 * - `"system"` - Automatically follows the user's OS preference
 * - `"light"` - Forces light mode regardless of system preference
 * - `"dark"` - Forces dark mode regardless of system preference
 *
 * @example
 * ```tsx
 * const { preference, setPreference } = useColorMode();
 *
 * // Switch to dark mode
 * setPreference("dark");
 *
 * // Follow system preference
 * setPreference("system");
 * ```
 *
 * @since 1.0.0
 */
export type ColorModePreference = "system" | "light" | "dark";
/**
 * Hook for managing application color mode with automatic system preference detection
 *
 * A complete color mode management solution that handles persistence, system preference
 * detection, and DOM manipulation without requiring any context providers. Designed
 * for applications that need simple light/dark mode switching with optional system
 * preference following.
 *
 * This hook works in conjunction with the {@link ColorModeScript} component to provide
 * a complete color mode solution with FOUC prevention and perfect synchronization
 * across multiple instances.
 *
 * Features:
 * - **Perfect synchronization**: Multiple hook instances stay in sync via custom events
 * - **Automatic persistence**: Color mode preference saved to cookies across sessions
 * - **System preference detection**: Automatically follows OS dark/light mode when set to "system"
 * - **Live system updates**: Responds to system color mode changes in real-time
 * - **SSR compatible**: Works safely during server-side rendering
 * - **Type safe**: Full TypeScript support with proper type definitions
 * - **No provider required**: Self-contained hook that works out of the box
 *
 * @example Basic color mode switching
 * ```tsx
 * function ColorModeToggle() {
 *   const { preference, mode, setPreference } = useColorMode();
 *
 *   const toggleMode = () => {
 *     setPreference(mode === "dark" ? "light" : "dark");
 *   };
 *
 *   return (
 *     <button onClick={toggleMode}>
 *       Switch to {mode === "dark" ? "light" : "dark"} mode
 *     </button>
 *   );
 * }
 * ```
 *
 * @example Color mode selector dropdown
 * ```tsx
 * function ColorModeSelector() {
 *   const { preference, setPreference } = useColorMode();
 *
 *   return (
 *     <select value={preference} onChange={(e) => setPreference(e.target.value as ColorModePreference)}>
 *       <option value="system">Follow system</option>
 *       <option value="light">Light mode</option>
 *       <option value="dark">Dark mode</option>
 *     </select>
 *   );
 * }
 * ```
 *
 * @returns Object containing current color mode state and setter function
 * @returns returns.preference - The user's selected color mode preference
 * @returns returns.mode - The actual color mode currently applied (always "light" or "dark")
 * @returns returns.setPreference - Function to change the color mode preference
 *
 * @see {@link ColorModePreference} - Available color mode preference options
 * @see {@link ColorModeScript} - Component for FOUC prevention
 * @see {@link ColorModeToggle} - UI component for color mode switching
 * @since 1.0.0
 */
export declare function useColorMode(): {
    preference: ColorModePreference;
    mode: "dark" | "light";
    setPreference: (newPreference: ColorModePreference) => void;
};
//# sourceMappingURL=use-color-mode.d.ts.map