import { DIRECTION, IThemeItem, LogoType, LAYOUT_OPTIONS, MODE, THEME_VARIANT, LangType } from '../config/index';
export type BackgroundVariant = 'none' | 'base' | 'sonoma' | 'wave' | 'wallpaper' | 'mobile' | 'radial' | 'window' | 'aurora' | 'depth' | 'demo';
export type TahoeBackgroundVariant = BackgroundVariant;
/** Helper: for every key K in T, produce a setter `setK: (value: T[K]) => void` */
type Setters<T> = {
    [K in keyof T as `set${Capitalize<string & K>}`]: (value: T[K]) => void;
};
/** State shape (values only, no functions) */
interface IThemeState {
    primaryPreset: IThemeItem;
    darkPrimaryPreset: IThemeItem;
    secondaryPreset: IThemeItem;
    darkSecondaryPreset: IThemeItem;
    accentPreset: IThemeItem;
    darkAccentPreset: IThemeItem;
    mutedPreset: IThemeItem;
    darkMutedPreset: IThemeItem;
    darkBgPreset: IThemeItem;
    lightBgPreset: IThemeItem;
    lightDarkPreset: IThemeItem;
    darkLightDarkPreset: IThemeItem;
    successPreset: IThemeItem;
    darkSuccessPreset: IThemeItem;
    warningPreset: IThemeItem;
    darkWarningPreset: IThemeItem;
    errorPreset: IThemeItem;
    darkErrorPreset: IThemeItem;
    infoPreset: IThemeItem;
    darkInfoPreset: IThemeItem;
    fgPreset: IThemeItem;
    darkFgPreset: IThemeItem;
    borderPreset: IThemeItem;
    darkBorderPreset: IThemeItem;
    direction: DIRECTION;
    layout: LAYOUT_OPTIONS;
    mode: MODE;
    colorScheme: THEME_VARIANT;
    logo: LogoType;
    isSettingsOpen: boolean;
    showSettings: boolean;
    lang: LangType;
    backgroundVariant: BackgroundVariant;
}
/** Full store interface: state + auto-generated setters + actions */
export interface ITheme extends IThemeState, Setters<IThemeState> {
    restoreDefaultColors: () => void;
    applyMacOSTheme: () => void;
    applyMacOSTahoeTheme: () => void;
    applyDefaultTheme: () => void;
    applyThemeStyle: (themeStyle: THEME_VARIANT) => void;
}
export declare const useTheme: import('zustand').UseBoundStore<Omit<import('zustand').StoreApi<ITheme>, "setState" | "persist"> & {
    setState(partial: ITheme | Partial<ITheme> | ((state: ITheme) => ITheme | Partial<ITheme>), replace?: false | undefined): unknown;
    setState(state: ITheme | ((state: ITheme) => ITheme), replace: true): unknown;
    persist: {
        setOptions: (options: Partial<import('zustand/middleware').PersistOptions<ITheme, {
            logo: {
                logo: null;
                name?: string;
                secondName?: string;
                path?: string;
                preset?: import('..').PRESET_LABEL_COLORS;
                className?: string;
                size?: "small" | "medium" | "large" | "xlarge" | "xxlarge";
                isoType?: boolean;
            };
        }, unknown>>) => void;
        clearStorage: () => void;
        rehydrate: () => Promise<void> | void;
        hasHydrated: () => boolean;
        onHydrate: (fn: (state: ITheme) => void) => () => void;
        onFinishHydration: (fn: (state: ITheme) => void) => () => void;
        getOptions: () => Partial<import('zustand/middleware').PersistOptions<ITheme, {
            logo: {
                logo: null;
                name?: string;
                secondName?: string;
                path?: string;
                preset?: import('..').PRESET_LABEL_COLORS;
                className?: string;
                size?: "small" | "medium" | "large" | "xlarge" | "xxlarge";
                isoType?: boolean;
            };
        }, unknown>>;
    };
}>;
export {};
