import { type StoreApi } from 'zustand';
import type { MapStyleType } from '../view-store/createViewStore';
export type UserSettingsKey = 'isMapHidden' | 'isFilterExpanded' | 'isWellNameExpand' | 'mapStyle';
export type PersistedUserSettings = {
    isMapHidden?: boolean;
    isFilterExpanded?: boolean;
    isWellNameExpand?: boolean;
    mapStyle?: MapStyleType;
};
export type ManuallyChangedFlags = Partial<Record<UserSettingsKey, boolean>>;
export type UserSettingsLoadState = 'idle' | 'loading' | 'loaded' | 'error';
export type UserSettingsStore = {
    settings: PersistedUserSettings;
    manuallyChanged: ManuallyChangedFlags;
    loadState: UserSettingsLoadState;
    error: Error | null;
    setSetting: <K extends UserSettingsKey>(key: K, value: PersistedUserSettings[K]) => void;
    loadSettings: () => Promise<void>;
    isLoading: () => boolean;
    isLoaded: () => boolean;
    hasManuallyChanged: (key: UserSettingsKey) => boolean;
};
export type UserSettingsStoreProps = {
    userId?: number;
};
export type UserSettingsStoreApi = StoreApi<UserSettingsStore>;
export declare const createUserSettingsStore: (initProps: UserSettingsStoreProps) => StoreApi<UserSettingsStore>;
//# sourceMappingURL=createUserSettingsStore.d.ts.map