/**
 * 간격 반복 컨테이너
 * 의존성 주입 컨테이너
 */
import type { SpacedRepetitionConfig, SpacedRepetitionWeights } from '../../../../shared/types/spaced-repetition.types.js';
import type { SpacedRepetitionService } from '../../../../shared/interfaces/spaced-repetition.interface.js';
/**
 * 간격 반복 컨테이너
 * 싱글톤 패턴으로 전역 상태 관리
 */
export declare class SpacedRepetitionContainer {
    private static instance;
    private service;
    private config;
    private constructor();
    /**
     * 싱글톤 인스턴스 반환
     */
    static getInstance(): SpacedRepetitionContainer;
    /**
     * 설정 초기화
     */
    initialize(config: SpacedRepetitionConfig): void;
    /**
     * 기본 설정으로 초기화
     */
    initializeWithDefaults(weights?: Partial<SpacedRepetitionWeights>): void;
    /**
     * 서비스 반환
     */
    getService(): SpacedRepetitionService;
    /**
     * 설정 반환
     */
    getConfig(): SpacedRepetitionConfig;
    /**
     * 초기화 여부 확인
     */
    isInitialized(): boolean;
    /**
     * 컨테이너 리셋
     */
    reset(): void;
    /**
     * 설정 업데이트
     */
    updateConfig(newConfig: Partial<SpacedRepetitionConfig>): void;
    /**
     * 가중치 업데이트
     */
    updateWeights(newWeights: Partial<SpacedRepetitionWeights>): void;
    /**
     * 임계값 업데이트
     */
    updateThreshold(newThreshold: number): void;
    /**
     * 기본 간격 업데이트
     */
    updateDefaultInterval(newInterval: number): void;
}
/**
 * 전역 컨테이너 접근 함수들
 */
export declare function getSpacedRepetitionService(): SpacedRepetitionService;
export declare function initializeSpacedRepetition(config: SpacedRepetitionConfig): void;
export declare function initializeSpacedRepetitionWithDefaults(weights?: Partial<SpacedRepetitionWeights>): void;
export declare function isSpacedRepetitionInitialized(): boolean;
export declare function resetSpacedRepetition(): void;
//# sourceMappingURL=spaced-repetition-container.d.ts.map