import type { SessionSendPolicyConfig } from "./types.base.js";
export type MemoryBackend = "builtin" | "qmd";
export type MemoryCitationsMode = "auto" | "on" | "off";
export type MemoryQmdSearchMode = "query" | "search" | "vsearch";
export type MemoryConfig = {
    backend?: MemoryBackend;
    citations?: MemoryCitationsMode;
    qmd?: MemoryQmdConfig;
};
export type MemoryQmdConfig = {
    command?: string;
    searchMode?: MemoryQmdSearchMode;
    includeDefaultMemory?: boolean;
    paths?: MemoryQmdIndexPath[];
    sessions?: MemoryQmdSessionConfig;
    update?: MemoryQmdUpdateConfig;
    limits?: MemoryQmdLimitsConfig;
    scope?: SessionSendPolicyConfig;
};
export type MemoryQmdIndexPath = {
    path: string;
    name?: string;
    pattern?: string;
};
export type MemoryQmdSessionConfig = {
    enabled?: boolean;
    exportDir?: string;
    retentionDays?: number;
};
export type MemoryQmdUpdateConfig = {
    interval?: string;
    debounceMs?: number;
    onBoot?: boolean;
    waitForBootSync?: boolean;
    embedInterval?: string;
    commandTimeoutMs?: number;
    updateTimeoutMs?: number;
    embedTimeoutMs?: number;
    embedConcurrency?: number;
};
export type MemoryQmdLimitsConfig = {
    maxResults?: number;
    maxSnippetChars?: number;
    maxInjectedChars?: number;
    timeoutMs?: number;
};
export type DreamConfig = {
    /** Enable automatic memory consolidation at session end (default: true). */
    enabled?: boolean;
    /** Number of daily-note files needed before consolidation triggers (default: 7). */
    fileThreshold?: number;
    /** Minimum hours between consolidations (default: 24). */
    minHours?: number;
    /** Minimum completed sessions between consolidations (default: 5). */
    minSessions?: number;
};
