/**
 * Quality Threshold Manager
 *
 * 품질 임계값 관리 서비스
 *
 * 주요 기능:
 * - 품질 임계값 CRUD (생성, 조회, 업데이트, 삭제)
 * - 기본 임계값 초기화
 * - 임계값 검증
 */
import Database from 'better-sqlite3';
/**
 * 품질 임계값 정보
 */
export interface QualityThreshold {
    metric_namespace: string;
    metric_key: string;
    context: string;
    threshold_value: number;
    threshold_type: 'min' | 'max';
    description: string | null;
    updated_at: string;
}
/**
 * 임계값 생성/업데이트 옵션
 */
export interface ThresholdOptions {
    threshold_value: number;
    threshold_type: 'min' | 'max';
    description?: string;
}
/**
 * Quality Threshold Manager
 */
export declare class QualityThresholdManager {
    private db;
    constructor(db: Database.Database);
    /**
     * 임계값 조회
     *
     * @param namespace - 지표 네임스페이스 (예: 'search', 'relation')
     * @param key - 지표 키 (예: 'precision_at_5')
     * @param context - 컨텍스트 (기본값: 'default')
     * @returns 임계값 정보 또는 null
     */
    getThreshold(namespace: string, key: string, context?: string): QualityThreshold | null;
    /**
     * 모든 임계값 조회
     *
     * @param namespace - 네임스페이스 필터 (선택적)
     * @param context - 컨텍스트 필터 (선택적)
     * @returns 임계값 목록
     */
    getAllThresholds(namespace?: string, context?: string): QualityThreshold[];
    /**
     * 임계값 설정 (생성 또는 업데이트)
     *
     * @param namespace - 지표 네임스페이스
     * @param key - 지표 키
     * @param options - 임계값 옵션
     * @param context - 컨텍스트 (기본값: 'default')
     * @returns 설정된 임계값 정보
     */
    setThreshold(namespace: string, key: string, options: ThresholdOptions, context?: string): QualityThreshold;
    /**
     * 임계값 삭제
     *
     * @param namespace - 지표 네임스페이스
     * @param key - 지표 키
     * @param context - 컨텍스트 (기본값: 'default')
     * @returns 삭제 성공 여부
     */
    deleteThreshold(namespace: string, key: string, context?: string): boolean;
    /**
     * 기본 임계값 초기화
     *
     * PRD 4.1: 기본 품질 임계값 초기화 로직
     * 기존 임계값이 있으면 건너뛰고, 없으면 기본값으로 설정
     *
     * @param context - 컨텍스트 (기본값: 'default')
     * @param overwrite - 기존 임계값 덮어쓰기 여부 (기본값: false)
     * @returns 초기화된 임계값 개수
     */
    initializeDefaultThresholds(context?: string, overwrite?: boolean): number;
    /**
     * 임계값 검증
     *
     * 측정값이 임계값을 만족하는지 검증
     *
     * @param namespace - 지표 네임스페이스
     * @param key - 지표 키
     * @param value - 측정값
     * @param context - 컨텍스트 (기본값: 'default')
     * @returns 검증 결과: { passed: boolean, threshold: QualityThreshold | null, message: string }
     */
    validateThreshold(namespace: string, key: string, value: number, context?: string): {
        passed: boolean;
        threshold: QualityThreshold | null;
        message: string;
    };
}
//# sourceMappingURL=quality-threshold-manager.d.ts.map