import type { i18n as I18nInstance } from 'i18next'; import type { ChatConfig } from '../types/index.ts'; export interface SettingsState { config: ChatConfig; activeTheme: string; language: string; setConfig(patch: Partial): void; setTheme(id: string): void; setLanguage(lang: string): void; } /** * Creates one createChat() instance's settings store. Each instance gets its own store (see * StoreContext.tsx) so simultaneous instances on the same page don't share config/theme. * `namespace` scopes the localStorage key so simultaneous instances don't persist over each * other either; omit it to keep the default key (matches pre-multi-instance behaviour for the * common single-widget-per-page case). */ export declare function createSettingsStore(i18nInstance: I18nInstance, namespace?: string): import("zustand").UseBoundStore, "setState" | "persist"> & { setState(partial: SettingsState | Partial | ((state: SettingsState) => SettingsState | Partial), replace?: false | undefined): unknown; setState(state: SettingsState | ((state: SettingsState) => SettingsState), replace: true): unknown; persist: { setOptions: (options: Partial>) => void; clearStorage: () => void; rehydrate: () => Promise | void; hasHydrated: () => boolean; onHydrate: (fn: (state: SettingsState) => void) => () => void; onFinishHydration: (fn: (state: SettingsState) => void) => () => void; getOptions: () => Partial>; }; }>;