/**
 * Config support for Hippo: reads .hippo/config.json with sane defaults.
 */
import { type PhysicsConfig } from './physics-config.js';
export type DecayBasis = 'clock' | 'session' | 'adaptive';
export interface HippoConfig {
    defaultHalfLifeDays: number;
    defaultBudget: number;
    defaultContextBudget: number;
    decayBasis: DecayBasis;
    autoLearnOnSleep: boolean;
    autoShareOnSleep: boolean;
    autoSleep: {
        enabled: boolean;
        threshold: number;
    };
    embeddings: {
        enabled: boolean | 'auto';
        model: string;
        hybridWeight: number;
    };
    global: {
        enabled: boolean;
    };
    gitLearnPatterns: string[];
    physics: PhysicsConfig;
    /** MMR (Maximal Marginal Relevance) re-ranking settings. Applied only when
     *  embeddings are available — needs doc-to-doc similarity. */
    mmr: {
        enabled: boolean;
        /** 1.0 = pure relevance (current behavior). 0.0 = pure diversity. 0.7 is
         *  a typical balance. */
        lambda: number;
    };
    search: {
        /** Multiplier applied to local-store scores when merged with global
         *  results (searchBothHybrid). 1.0 = no bias, 1.2 = 20% local priority. */
        localBump: number;
    };
    /** Replay settings — biologically-inspired rehearsal during consolidation. */
    replay: {
        /** How many surviving memories to rehearse per sleep cycle. 0 disables. */
        count: number;
    };
    /** Auto-promote completed sessions into trace-layer memories on sleep. */
    autoTraceCapture: boolean;
    /** Only promote sessions whose session_complete event is within N days. */
    autoTraceWindowDays: number;
    /** Mid-session pinned-rule re-injection via the Claude Code UserPromptSubmit
     *  hook. When enabled, pinned memories are re-injected each turn within the
     *  given token budget. */
    pinnedInject: {
        enabled: boolean;
        budget: number;
    };
    extraction: {
        enabled: boolean | 'auto';
        model: string;
    };
    multihop: {
        enabled: boolean;
    };
    salience: {
        enabled: boolean;
        recentWindow: number;
        overlapThreshold: number;
        minContentLength: number;
        maxRepeatErrors: number;
    };
    ambient: {
        enabled: boolean;
    };
}
export declare function loadConfig(hippoRoot: string): HippoConfig;
export declare function saveConfig(hippoRoot: string, config: HippoConfig): void;
//# sourceMappingURL=config.d.ts.map