/**
 * Three-tier memory backend hierarchy for the framework.
 *
 * - 'none': No memory at all (NullMemoryBackend) — framework works without it
 * - 'file': File-based JSON cache in .aperant/memory/ — decent recall, zero native deps
 * - 'full': Full libSQL backend from packages/core — vector + BM25 search
 */
export type MemoryBackendTier = 'none' | 'file' | 'full';
/** A memory entry stored by the framework — JSON-serializable, no vector embeddings. */
export interface FrameworkMemoryEntry {
    id: string;
    content: string;
    type: string;
    scope: string;
    tags: string[];
    source: string;
    createdAt: string;
    updatedAt: string;
    deprecated: boolean;
    metadata?: Record<string, unknown>;
}
/** Input for storing a new memory entry (id and timestamps are auto-generated). */
export type FrameworkMemoryStoreInput = Omit<FrameworkMemoryEntry, 'id' | 'createdAt' | 'updatedAt'>;
/** Query parameters for retrieving memory entries. */
export interface FrameworkMemoryQuery {
    text?: string;
    type?: string;
    tags?: string[];
    limit?: number;
}
/** Contract for all memory backends in the framework. */
export interface FrameworkMemoryBackend {
    readonly tier: MemoryBackendTier;
    store(entry: FrameworkMemoryStoreInput): Promise<string>;
    retrieve(query: FrameworkMemoryQuery): Promise<FrameworkMemoryEntry[]>;
    delete(id: string): Promise<void>;
    deprecate(id: string): Promise<void>;
    close(): Promise<void>;
}
//# sourceMappingURL=types.d.ts.map