/**
 * Memory Store
 *
 * Core CRUD operations for the memory database.
 * Handles storage, retrieval, and management of memories.
 */
import { Memory, MemoryInput, MemoryType, MemoryConfig } from './types.js';
import type { DefenceSource } from '../defence/types.js';
export declare const MAX_CONTENT_SIZE: number;
/**
 * Get truncation info from the last addMemory call
 */
export declare function getLastTruncationInfo(): {
    wasTruncated: boolean;
    originalLength: number;
    truncatedLength: number;
} | null;
/**
 * Convert database row to Memory object
 */
export declare function rowToMemory(row: Record<string, unknown>): Memory;
export declare function logAccessDenial(memoryId: number, source: DefenceSource, reason: string): void;
/**
 * Error thrown when memory creation is paused
 */
export declare class MemoryPausedError extends Error {
    constructor();
}
/**
 * Error thrown when memory is blocked by the defence firewall
 */
export declare class MemoryBlockedError extends Error {
    constructor(reason: string);
}
/**
 * Add a new memory
 */
export declare function addMemory(input: MemoryInput, config?: MemoryConfig, source?: DefenceSource): Memory;
/**
 * Get a memory by ID
 */
export declare function getMemoryById(id: number, source?: DefenceSource): Memory | null;
/**
 * Update a memory
 */
export declare function updateMemory(id: number, updates: Partial<MemoryInput>): Memory | null;
export declare function mergeMemories(keptId: number, removedId: number, options?: {
    reviewedBy?: string | null;
}): Memory | null;
/**
 * Delete a memory
 */
export declare function deleteMemory(id: number, source?: DefenceSource): boolean;
/**
 * Get all memories for a project
 */
export declare function getProjectMemories(project: string, config?: MemoryConfig): Memory[];
/**
 * Get recent memories
 */
export declare function getRecentMemories(limit?: number, project?: string, source?: DefenceSource): Memory[];
/**
 * Get memories by type
 */
export declare function getMemoriesByType(type: MemoryType, limit?: number): Memory[];
/**
 * Get high-priority memories (for context injection)
 */
export declare function getHighPriorityMemories(limit?: number, project?: string, source?: DefenceSource): Memory[];
/**
 * Get memory statistics
 */
export declare function getMemoryStats(project?: string): {
    total: number;
    shortTerm: number;
    longTerm: number;
    episodic: number;
    byCategory: Record<string, number>;
    averageSalience: number;
};
export { createMemoryLink, getRelatedMemories, deleteMemoryLink, getAllMemoryLinks, detectRelationships, type RelationshipType, type MemoryLink, } from './links.js';
export { accessMemory, reinforceFromSearch, enrichMemory, clearEnrichmentCooldown, getEnrichmentCooldownStatus, updateDecayScores, promoteMemory, cleanupDecayedMemories, type EnrichmentResult, } from './lifecycle.js';
export { searchMemories, searchMemoriesExplained, recallWithEmbeddings, } from './search-recall.js';
