/**
 * 검색 품질 지표 계산 공통 헬퍼
 * Precision@K, Recall@K, NDCG@K 계산 로직 공유
 */
export interface SearchResult {
    id: string;
    score?: number;
    finalScore?: number;
    relevance?: number;
}
export interface GroundTruth {
    queryId: string;
    relevantIds: string[];
}
/**
 * Precision@K 계산
 * 상위 K개 결과 중 관련 결과 비율
 *
 * @param results 검색 결과 (점수 순으로 정렬된 상태)
 * @param relevantIds 관련 결과 ID 목록
 * @param k 상위 K개
 * @returns Precision@K (0-1)
 */
export declare function calculatePrecisionAtK(results: SearchResult[], relevantIds: string[], k: number): number;
/**
 * Recall@K 계산
 * 관련 결과 중 상위 K개에 포함된 비율
 *
 * @param results 검색 결과 (점수 순으로 정렬된 상태)
 * @param relevantIds 관련 결과 ID 목록
 * @param k 상위 K개
 * @returns Recall@K (0-1)
 */
export declare function calculateRecallAtK(results: SearchResult[], relevantIds: string[], k: number): number;
/**
 * NDCG@K (Normalized Discounted Cumulative Gain) 계산
 * 정규화된 할인 누적 이득
 *
 * @param results 검색 결과 (점수 순으로 정렬된 상태)
 * @param relevantIds 관련 결과 ID 목록
 * @param k 상위 K개
 * @returns NDCG@K (0-1)
 */
export declare function calculateNDCGAtK(results: SearchResult[], relevantIds: string[], k: number): number;
/**
 * 평균 Precision@K 계산 (여러 쿼리에 대해)
 *
 * @param queryResults 쿼리별 검색 결과
 * @param groundTruths 쿼리별 Ground Truth
 * @param k 상위 K개
 * @returns 평균 Precision@K
 */
export declare function calculateMeanPrecisionAtK(queryResults: Map<string, SearchResult[]>, groundTruths: GroundTruth[], k: number): number;
/**
 * 평균 Recall@K 계산 (여러 쿼리에 대해)
 *
 * @param queryResults 쿼리별 검색 결과
 * @param groundTruths 쿼리별 Ground Truth
 * @param k 상위 K개
 * @returns 평균 Recall@K
 */
export declare function calculateMeanRecallAtK(queryResults: Map<string, SearchResult[]>, groundTruths: GroundTruth[], k: number): number;
/**
 * 평균 NDCG@K 계산 (여러 쿼리에 대해)
 *
 * @param queryResults 쿼리별 검색 결과
 * @param groundTruths 쿼리별 Ground Truth
 * @param k 상위 K개
 * @returns 평균 NDCG@K
 */
export declare function calculateMeanNDCGAtK(queryResults: Map<string, SearchResult[]>, groundTruths: GroundTruth[], k: number): number;
/**
 * 랭킹 정확도 계산
 * 기대 순서와 실제 순서의 일치도
 *
 * @param results 검색 결과 (점수 순으로 정렬된 상태)
 * @param expectedOrder 기대 순서 (ID 배열)
 * @returns 랭킹 정확도 (0-1)
 */
export declare function calculateRankingAccuracy(results: SearchResult[], expectedOrder: string[]): number;
/**
 * 품질 지표 리포트 생성
 *
 * @param results 검색 결과
 * @param groundTruths Ground Truth 목록
 * @param kValues K 값 배열 (예: [1, 5, 10])
 * @returns 품질 지표 리포트
 */
export interface QualityMetricsReport {
    precision: Record<number, number>;
    recall: Record<number, number>;
    ndcg: Record<number, number>;
    rankingAccuracy?: number;
}
export declare function generateQualityReport(queryResults: Map<string, SearchResult[]>, groundTruths: GroundTruth[], kValues?: number[]): QualityMetricsReport;
//# sourceMappingURL=search-quality-metrics.d.ts.map