export type ThemeMode = 'light' | 'dark' | 'system';
/**
 * Theme store state interface
 */
export interface ThemeState {
    /**
     * Current theme mode
     */
    themeMode: ThemeMode;
    /**
     * Whether the current theme is dark
     */
    isDark: boolean;
}
/**
 * Theme store actions interface
 */
export interface ThemeActions {
    /**
     * Apply theme based on the mode selected
     */
    applyTheme: (mode: ThemeMode) => void;
    /**
     * Toggle between themes
     */
    toggleTheme: () => void;
    /**
     * Set a specific theme mode
     */
    setTheme: (mode: ThemeMode) => void;
    /**
     * Set the white-label theme from institution branding
     */
    setWhiteLabelTheme: (theme: string | null) => void;
    /**
     * Clear the white-label theme and revert to default
     */
    clearWhiteLabelTheme: () => void;
    /**
     * Initialize theme on app start
     */
    initializeTheme: () => void;
    /**
     * Handle system theme change
     */
    handleSystemThemeChange: () => void;
}
export type ThemeStore = ThemeState & ThemeActions;
/**
 * Theme store using Zustand with persistence
 */
export declare const useThemeStore: import("zustand").UseBoundStore<Omit<Omit<import("zustand").StoreApi<ThemeStore>, "setState" | "devtools"> & {
    setState(partial: ThemeStore | Partial<ThemeStore> | ((state: ThemeStore) => ThemeStore | Partial<ThemeStore>), replace?: false | undefined, action?: (string | {
        [x: string]: unknown;
        [x: number]: unknown;
        [x: symbol]: unknown;
        type: string;
    }) | undefined): void;
    setState(state: ThemeStore | ((state: ThemeStore) => ThemeStore), replace: true, action?: (string | {
        [x: string]: unknown;
        [x: number]: unknown;
        [x: symbol]: unknown;
        type: string;
    }) | undefined): void;
    devtools: {
        cleanup: () => void;
    };
}, "setState" | "persist"> & {
    setState(partial: ThemeStore | Partial<ThemeStore> | ((state: ThemeStore) => ThemeStore | Partial<ThemeStore>), replace?: false | undefined, action?: (string | {
        [x: string]: unknown;
        [x: number]: unknown;
        [x: symbol]: unknown;
        type: string;
    }) | undefined): unknown;
    setState(state: ThemeStore | ((state: ThemeStore) => ThemeStore), replace: true, action?: (string | {
        [x: string]: unknown;
        [x: number]: unknown;
        [x: symbol]: unknown;
        type: string;
    }) | undefined): unknown;
    persist: {
        setOptions: (options: Partial<import("zustand/middleware").PersistOptions<ThemeStore, {
            themeMode: ThemeMode;
        }, unknown>>) => void;
        clearStorage: () => void;
        rehydrate: () => Promise<void> | void;
        hasHydrated: () => boolean;
        onHydrate: (fn: (state: ThemeStore) => void) => () => void;
        onFinishHydration: (fn: (state: ThemeStore) => void) => () => void;
        getOptions: () => Partial<import("zustand/middleware").PersistOptions<ThemeStore, {
            themeMode: ThemeMode;
        }, unknown>>;
    };
}>;
//# sourceMappingURL=themeStore.d.ts.map