import type { KaijiBotConfig } from "../config/config.js";
import type { SecretInput } from "../config/types.secrets.js";
import { type MemoryMultimodalSettings } from "../memory-host-sdk/multimodal.js";
export type ResolvedMemorySearchConfig = {
    enabled: boolean;
    sources: Array<"memory" | "sessions">;
    extraPaths: string[];
    multimodal: MemoryMultimodalSettings;
    provider: string;
    remote?: {
        baseUrl?: string;
        apiKey?: SecretInput;
        headers?: Record<string, string>;
        batch?: {
            enabled: boolean;
            wait: boolean;
            concurrency: number;
            pollIntervalMs: number;
            timeoutMinutes: number;
        };
    };
    experimental: {
        sessionMemory: boolean;
    };
    fallback: string;
    model: string;
    outputDimensionality?: number;
    local: {
        modelPath?: string;
        modelCacheDir?: string;
    };
    store: {
        driver: "sqlite";
        path: string;
        fts: {
            tokenizer: "unicode61" | "trigram";
        };
        vector: {
            enabled: boolean;
            extensionPath?: string;
        };
    };
    chunking: {
        tokens: number;
        overlap: number;
    };
    sync: {
        onSessionStart: boolean;
        onSearch: boolean;
        watch: boolean;
        watchDebounceMs: number;
        intervalMinutes: number;
        sessions: {
            deltaBytes: number;
            deltaMessages: number;
            postCompactionForce: boolean;
        };
    };
    query: {
        maxResults: number;
        minScore: number;
        hybrid: {
            enabled: boolean;
            vectorWeight: number;
            textWeight: number;
            candidateMultiplier: number;
            mmr: {
                enabled: boolean;
                lambda: number;
            };
            temporalDecay: {
                enabled: boolean;
                halfLifeDays: number;
            };
        };
    };
    cache: {
        enabled: boolean;
        maxEntries?: number;
    };
};
export type ResolvedMemorySearchSyncConfig = ResolvedMemorySearchConfig["sync"];
export declare function resolveMemorySearchConfig(cfg: KaijiBotConfig, agentId: string): ResolvedMemorySearchConfig | null;
export declare function resolveMemorySearchSyncConfig(cfg: KaijiBotConfig, agentId: string): ResolvedMemorySearchSyncConfig | null;
