import { type MemoryStore } from "./memory-store.js";
import type { MemoryEvent, MemoryEventInput, MemorySearchRequest, MemorySearchResult, MemorySessionIdentity, MemoryStatus } from "./memory-types.js";
export interface MemoryRetentionPolicy {
    retentionDays?: number;
    maxEvents?: number;
}
export interface MemoryServiceOptions {
    session: MemorySessionIdentity;
    store?: MemoryStore;
    enabled?: boolean;
    retention?: MemoryRetentionPolicy;
}
export declare class MemoryService {
    private readonly session;
    private readonly store;
    private readonly enabled;
    private readonly retention;
    private readonly dedupe;
    private initialized;
    constructor(options: MemoryServiceOptions);
    initialize(): Promise<void>;
    recordEvent(event: MemoryEventInput): Promise<MemoryEvent | undefined>;
    search(request: MemorySearchRequest): Promise<MemorySearchResult[]>;
    getRecent(limit?: number): Promise<MemoryEvent[]>;
    exportProject(): Promise<{
        path: string;
        eventCount: number;
    }>;
    forgetEvent(eventId: string): Promise<boolean>;
    purgeProject(): Promise<number>;
    applyRetentionPolicy(): Promise<number>;
    getStatus(): Promise<MemoryStatus>;
    close(): Promise<void>;
}
//# sourceMappingURL=memory-service.d.ts.map