import { type ReactNode } from 'react';
import type { ThemeMode, ThemeConfig, BorderRadiusConfig, BorderRadiusSize, ItemPaletteKey } from '@/types/theme';
interface ThemeContextType {
    config: ThemeConfig;
    mode: ThemeMode;
    toggleMode: () => void;
    setMode: (mode: ThemeMode) => void;
    setBorderRadius: (element: keyof BorderRadiusConfig, size: BorderRadiusSize) => void;
    setAccentColor: (colorKey: string) => void;
    setItemPalette: (paletteKey: ItemPaletteKey) => void;
    applyPreset: (presetConfig: Partial<ThemeConfig>) => void;
    resetToDefault: () => void;
    getBorderRadius: (element: keyof BorderRadiusConfig) => string;
    loadFromServer: () => Promise<void>;
    isSyncing: boolean;
}
export declare function ThemeProvider({ children }: {
    children: ReactNode;
}): import("react/jsx-runtime").JSX.Element;
export declare function useTheme(): ThemeContextType;
export declare function useThemeMode(): {
    theme: ThemeMode;
    toggleTheme: () => void;
    setTheme: (mode: ThemeMode) => void;
};
export {};
//# sourceMappingURL=ThemeContext.d.ts.map