export type MemoryType = 'working' | 'episodic' | 'semantic' | 'profile' | 'temporal';
export interface MemoryNamespace {
    project?: string;
    user?: string;
    agent?: string;
    squad?: string;
    domain?: string;
}
export interface MemoryRecord {
    id: string;
    type: MemoryType;
    namespace: MemoryNamespace;
    content: string;
    summary?: string;
    tags?: string[];
    confidence?: number;
    sourceMissionId?: string;
    dedupeKey?: string;
    createdAt: string;
    updatedAt?: string;
    validFrom?: string;
    validTo?: string;
    /**
     * v1.11.0 — When true, the record is exempt from retention policy expiry
     * regardless of its `type`. Used to mark cross-process facts (bridge bus,
     * Telegram-issued commands) as eternal.
     */
    keep?: boolean;
}
export interface MemorySearchQuery {
    query: string;
    namespace?: MemoryNamespace;
    types?: MemoryType[];
    topK?: number;
}
export interface MemoryProvider {
    name(): string;
    search(input: MemorySearchQuery): Promise<MemoryRecord[]>;
    save(record: MemoryRecord): Promise<void>;
}
