/**
 * Meta Memory Service
 *
 * 메타 메모리 통계 수집 및 관리 서비스
 * recall 성공/실패, confidence 점수 등의 통계를 수집합니다.
 */
import Database from 'better-sqlite3';
import { WriteCoalescingManager } from '../../../shared/utils/write-coalescing.js';
import type { RecallResultItem } from '../tools/recall-tool.js';
import type { MetaMemoryStats, GetMetaMemoryStatsParams, MetaMemoryStatsResult } from '../../../shared/types/index.js';
/**
 * Meta Memory Service
 *
 * recall 통계를 수집하고 관리하는 서비스입니다.
 */
export declare class MetaMemoryService {
    private db;
    private writeCoalescingManager;
    private readonly flushInterval;
    constructor(db: Database.Database, writeCoalescingManager?: WriteCoalescingManager);
    /**
     * Recall 통계 기록
     *
     * 검색 결과를 기반으로 각 메모리 항목의 통계를 업데이트합니다.
     *
     * @param items 검색 결과 항목 배열
     */
    recordRecall(items: RecallResultItem[]): Promise<void>;
    /**
     * 통계 버퍼에 추가 (WriteCoalescingManager와 연동)
     */
    private statsBuffer;
    private statsFlushTimer;
    private addToStatsBuffer;
    /**
     * 통계 Flush 스케줄링
     */
    private scheduleStatsFlush;
    /**
     * 통계 버퍼 내용을 데이터베이스에 flush
     */
    private flushStats;
    /**
     * 항목 성공/실패 판정
     *
     * @param item 검색 결과 항목
     * @returns 성공 여부 (final_score >= 0.5)
     */
    isItemSuccess(item: RecallResultItem): boolean;
    /**
     * Confidence 점수 계산
     *
     * @param item 검색 결과 항목
     * @returns confidence 점수 (0.0 ~ 1.0)
     */
    calculateConfidence(item: RecallResultItem): number;
    /**
     * 평균 confidence 점수 업데이트 (누적 평균 계산)
     *
     * @param currentAvg 현재 평균 confidence
     * @param currentCount 현재 recall_count
     * @param newConfidence 새로운 confidence 점수
     * @returns 업데이트된 평균 confidence 점수
     */
    updateAvgConfidence(currentAvg: number, currentCount: number, newConfidence: number): number;
    /**
     * 통계 조회 (단일 메모리 ID)
     *
     * @param memoryId 메모리 ID
     * @returns 통계 정보 (없으면 기본값 반환)
     */
    getStatsById(memoryId: string): Promise<MetaMemoryStats>;
    /**
     * 통계 조회 (필터링 지원)
     *
     * @param params 필터링 파라미터
     * @returns 필터링된 통계 결과
     */
    getStats(params?: GetMetaMemoryStatsParams): Promise<MetaMemoryStatsResult>;
    /**
     * 데이터베이스 row를 MetaMemoryStats로 매핑
     *
     * @param row 데이터베이스 row
     * @returns MetaMemoryStats 객체
     */
    private mapRowToMetaMemoryStats;
    /**
     * 데이터베이스에 통계 업데이트
     *
     * @param writes 업데이트할 통계 배열
     */
    private flushToDatabase;
    /**
     * 리소스 정리
     */
    destroy(): Promise<void>;
}
//# sourceMappingURL=meta-memory-service.d.ts.map