import type { ChatConfig } from '@genesislcap/foundation-ai';
import { type AiAssistantAnimation } from '../main/main.types';
import type { SessionPreferences } from '../state/persistence/session-persistence-provider';
/**
 * The effective user-facing preference state for a freshly created session store
 * (GENC-1351 #2), resolved from the two inputs that feed it.
 *
 * @internal
 */
export interface ResolvedPreferenceBaseline {
    showToolCalls: boolean;
    showThinkingSteps: boolean;
    showNarration: boolean;
    showAgentSwitchIndicator: boolean;
    enabledAnimations: AiAssistantAnimation[];
    /**
     * The remembered "remember chat" toggle — present only when stored prefs carried
     * an `enabled` value. Left `undefined` otherwise so the caller keeps the
     * host-configured default rather than forcing a value.
     */
    enabled?: boolean;
}
/**
 * Resolve the effective preference baseline for a fresh store, applying the
 * precedence (lowest → highest):
 *
 *   slice defaults  <  `chatConfig.ui` defaults  <  stored user preferences
 *
 * The `chatConfig.ui` layer is the fallback when the user has no stored prefs
 * (e.g. a first-ever load, or after the persistence backend is wiped) — the case
 * the old "read config once on connect" path got wrong whenever `chatConfig` had
 * not bound yet. Stored prefs, when present, override only the fields they carry;
 * absent fields keep the config default. Pure, so the precedence is unit-testable
 * independent of the element/store wiring.
 *
 * Config-supplied animations are normalised through {@link resolveExclusiveLoadingStyle}
 * (a raw config list may name both loading styles); stored animations are applied
 * as-is, since they were already normalised when saved.
 *
 * @internal
 */
export declare function resolvePreferenceBaseline(ui: ChatConfig['ui'], stored: SessionPreferences | null | undefined): ResolvedPreferenceBaseline;
//# sourceMappingURL=resolve-preference-baseline.d.ts.map