import { type IAgentRuntime, Service, type ServiceTypeName, type UUID } from "../../types/index.ts";
import type { LongTermMemory, LongTermMemoryCategory, MemoryConfig, SessionSummary } from "../types.ts";
export declare class MemoryService extends Service {
    static serviceType: ServiceTypeName;
    private sessionMessageCounts;
    private memoryConfig;
    private lastExtractionCheckpoints;
    capabilityDescription: string;
    constructor(runtime?: IAgentRuntime);
    static start(runtime: IAgentRuntime): Promise<Service>;
    stop(): Promise<void>;
    initialize(runtime: IAgentRuntime): Promise<void>;
    private getDb;
    getConfig(): MemoryConfig;
    updateConfig(updates: Partial<MemoryConfig>): void;
    /** Safety cap to prevent the per-room counters from growing unbounded. */
    private static readonly MAX_SESSION_ENTRIES;
    incrementMessageCount(roomId: UUID): number;
    resetMessageCount(roomId: UUID): void;
    shouldSummarize(roomId: UUID): Promise<boolean>;
    private getExtractionKey;
    getLastExtractionCheckpoint(entityId: UUID, roomId: UUID): Promise<number>;
    setLastExtractionCheckpoint(entityId: UUID, roomId: UUID, messageCount: number): Promise<void>;
    shouldRunExtraction(entityId: UUID, roomId: UUID, currentMessageCount: number): Promise<boolean>;
    storeLongTermMemory(memory: Omit<LongTermMemory, "id" | "createdAt" | "updatedAt" | "accessCount">): Promise<LongTermMemory>;
    getLongTermMemories(entityId: UUID, category?: LongTermMemoryCategory, limit?: number): Promise<LongTermMemory[]>;
    updateLongTermMemory(id: UUID, entityId: UUID, updates: Partial<Omit<LongTermMemory, "id" | "agentId" | "entityId" | "createdAt">>): Promise<void>;
    deleteLongTermMemory(id: UUID, entityId: UUID): Promise<void>;
    getCurrentSessionSummary(roomId: UUID): Promise<SessionSummary | null>;
    storeSessionSummary(summary: Omit<SessionSummary, "id" | "createdAt" | "updatedAt">): Promise<SessionSummary>;
    updateSessionSummary(id: UUID, roomId: UUID, updates: Partial<Omit<SessionSummary, "id" | "agentId" | "roomId" | "createdAt" | "updatedAt">>): Promise<void>;
    getSessionSummaries(roomId: UUID, limit?: number): Promise<SessionSummary[]>;
    searchLongTermMemories(entityId: UUID, queryEmbedding: number[], limit?: number, matchThreshold?: number): Promise<LongTermMemory[]>;
    getFormattedLongTermMemories(entityId: UUID): Promise<string>;
}
//# sourceMappingURL=memory-service.d.ts.map