/**
 * Anchor Cache Service
 * 캐시 및 임베딩 관리 담당
 * Phase 1.1: anchor-manager.ts 리팩토링
 */
import type Database from 'better-sqlite3';
import type { MemoryEmbeddingService } from '../../../memory/services/memory-embedding-service.js';
import type { AnchorSlot, IAnchorCacheService } from './anchor-interfaces.js';
/**
 * Anchor Cache Service 구현
 */
export declare class AnchorCacheService implements IAnchorCacheService {
    /**
     * 메모리 캐시: agent_id별 슬롯 상태 관리
     * Map<agent_id, {A: memory_id | null, B: memory_id | null, C: memory_id | null}>
     */
    private cache;
    private db;
    private embeddingService;
    /**
     * 생성자 (필수 의존성 주입 권장, 미전달 시 setDatabase/setEmbeddingService 호출 필요)
     */
    constructor(db?: Database.Database, embeddingService?: MemoryEmbeddingService);
    /**
     * 데이터베이스 설정
     */
    setDatabase(db: Database.Database): void;
    /**
     * 임베딩 서비스 설정
     */
    setEmbeddingService(embeddingService: MemoryEmbeddingService): void;
    /**
     * 앵커 메모리의 임베딩 조회
     * @param memoryId - 메모리 ID
     * @returns 임베딩 벡터 및 제공자 정보, 없으면 null
     */
    getAnchorEmbedding(memoryId: string): Promise<{
        embedding: number[];
        provider: string;
    } | null>;
    /**
     * 서버 재시작 시 DB에서 캐시 복원
     * @param db - 데이터베이스 인스턴스
     */
    restoreCacheFromDB(db: Database.Database): Promise<void>;
    /**
     * 캐시 업데이트 헬퍼 메서드
     * @param agentId - 에이전트 ID
     * @param slot - 슬롯
     * @param memoryId - 메모리 ID (null이면 제거)
     */
    updateCache(agentId: string, slot: AnchorSlot, memoryId: string | null): void;
    /**
     * 캐시에서 앵커 조회
     * @param agentId - 에이전트 ID
     * @param _slot - 슬롯 (선택적)
     * @returns 캐시된 앵커 정보
     */
    getCachedAnchor(agentId: string, _slot?: AnchorSlot): {
        A: string | null;
        B: string | null;
        C: string | null;
    } | undefined;
    /**
     * 캐시에서 특정 슬롯의 메모리 ID 조회
     * @param agentId - 에이전트 ID
     * @param slot - 슬롯
     * @returns 메모리 ID 또는 undefined
     */
    getCachedMemoryId(agentId: string, slot: AnchorSlot): string | null | undefined;
    /**
     * 캐시 삭제
     * @param agentId - 에이전트 ID
     */
    deleteCache(agentId: string): void;
}
//# sourceMappingURL=anchor-cache-service.d.ts.map