/**
 * 유지보수성과 테스트 가능성을 향상시키기 위해 클린코드 원칙을 적용합니다.
 * 기존 인터페이스와의 호환성을 유지하여 점진적 마이그레이션을 가능하게 합니다.
 */
import type { MemoryData, ReviewPerformance, ReviewSchedule, SpacedRepetitionFeatures, SpacedRepetitionWeights } from '../../../shared/types/spaced-repetition.types.js';
/**
 * 리팩토링된 간격 반복 알고리즘으로 기존 코드와의 호환성을 유지하면서 개선된 구조를 제공합니다.
 * 기존 SpacedRepetitionAlgorithm과 동일한 인터페이스를 제공하여 기존 코드 수정 없이 사용 가능하도록 합니다.
 */
export declare class SpacedRepetitionAlgorithmRefactored {
    private readonly weights;
    private readonly recallThreshold;
    constructor(weights?: Partial<SpacedRepetitionWeights>);
    /**
     * 기존 메서드와 동일한 시그니처를 유지하여 호환성을 보장합니다.
     * 내부적으로는 리팩토링된 서비스를 사용하여 개선된 구현을 제공합니다.
     */
    calculateNextInterval(currentInterval: number, features: SpacedRepetitionFeatures): number;
    /**
     * 기존 메서드와 동일한 시그니처를 유지하여 호환성을 보장합니다.
     * 내부적으로는 리팩토링된 서비스를 사용하여 개선된 구현을 제공합니다.
     */
    calculateRecallProbability(timeSinceLastReview: number, interval: number): number;
    /**
     * 기존 메서드와 동일한 시그니처를 유지하여 호환성을 보장합니다.
     * 내부적으로는 리팩토링된 서비스를 사용하여 개선된 구현을 제공합니다.
     */
    needsReview(timeSinceLastReview: number, interval: number, threshold?: number): boolean;
    /**
     * 기존 메서드와 동일한 시그니처를 유지하여 호환성을 보장합니다.
     * 내부적으로는 리팩토링된 서비스를 사용하여 개선된 구현을 제공합니다.
     */
    createReviewSchedule(memoryId: string, currentInterval: number, lastReviewDate: Date, features: SpacedRepetitionFeatures): ReviewSchedule;
    /**
     * 배치 리뷰 스케줄 생성
     * 기존 메서드와 동일한 시그니처 유지
     */
    createBatchReviewSchedules(memories: MemoryData[]): ReviewSchedule[];
    /**
     * 리뷰 우선순위 계산
     * 기존 메서드와 동일한 시그니처 유지
     */
    calculateReviewPriority(schedule: ReviewSchedule): number;
    /**
     * 리뷰 성과 분석
     * 기존 메서드와 동일한 시그니처 유지
     */
    analyzeReviewPerformance(schedules: ReviewSchedule[], actualRecall: Map<string, boolean>): ReviewPerformance;
    /**
     * 최적 간격 추천
     * 기존 메서드와 동일한 시그니처 유지
     */
    recommendOptimalInterval(currentInterval: number, recallHistory: boolean[], features: SpacedRepetitionFeatures): number;
    /**
     * 일수 계산 (private 메서드)
     * 기존 구현과 동일
     */
    private getDaysSince;
}
/**
 * 기존 SpacedRepetitionAlgorithm을 대체하는 팩토리 함수들
 */
export declare function createSpacedRepetitionAlgorithm(weights?: Partial<SpacedRepetitionWeights>): SpacedRepetitionAlgorithmRefactored;
export declare function getSpacedRepetitionAlgorithm(): SpacedRepetitionAlgorithmRefactored;
export declare function resetSpacedRepetitionAlgorithm(): void;
export { SpacedRepetitionAlgorithmRefactored as SpacedRepetitionAlgorithm };
//# sourceMappingURL=spaced-repetition-refactored.d.ts.map