import type { MemoryEvent, MemoryEventInput, MemorySearchRequest, MemorySearchResult, MemorySessionIdentity, MemoryStatus } from "./memory-types.js";
export interface MemoryStore {
    readonly kind: string;
    initialize(session: MemorySessionIdentity): Promise<void>;
    recordEvent(session: MemorySessionIdentity, event: MemoryEventInput): Promise<MemoryEvent | undefined>;
    search(request: MemorySearchRequest): Promise<MemorySearchResult[]>;
    getRecent(projectId: string, limit: number): Promise<MemoryEvent[]>;
    deleteEvent(projectId: string, eventId: string): Promise<boolean>;
    purgeProject(projectId: string): Promise<number>;
    getStatus(): Promise<MemoryStatus>;
    close(): Promise<void>;
}
export declare class InMemoryMemoryStore implements MemoryStore {
    readonly kind = "memory";
    private events;
    private session;
    initialize(session: MemorySessionIdentity): Promise<void>;
    recordEvent(session: MemorySessionIdentity, event: MemoryEventInput): Promise<MemoryEvent>;
    search(request: MemorySearchRequest): Promise<MemorySearchResult[]>;
    getRecent(projectId: string, limit: number): Promise<MemoryEvent[]>;
    deleteEvent(projectId: string, eventId: string): Promise<boolean>;
    purgeProject(projectId: string): Promise<number>;
    getStatus(): Promise<MemoryStatus>;
    close(): Promise<void>;
}
export declare class NoopMemoryStore implements MemoryStore {
    readonly kind = "noop";
    initialize(_session: MemorySessionIdentity): Promise<void>;
    recordEvent(_session: MemorySessionIdentity, _event: MemoryEventInput): Promise<MemoryEvent | undefined>;
    search(_request: MemorySearchRequest): Promise<MemorySearchResult[]>;
    getRecent(_projectId: string, _limit: number): Promise<MemoryEvent[]>;
    deleteEvent(_projectId: string, _eventId: string): Promise<boolean>;
    purgeProject(_projectId: string): Promise<number>;
    getStatus(): Promise<MemoryStatus>;
    close(): Promise<void>;
}
//# sourceMappingURL=memory-store.d.ts.map