import { FaceDetectionSDKConfig, MeasurementResult, LastRGB } from '../../types/index.js';
export interface MeasurementEvents {
    onProgress: (progress: number, dataLength: number) => void;
    onMeasurementComplete: (result: MeasurementResult) => void;
    onDataDownload: (dataString: string) => void;
    onLog: (msg: string) => void;
}
export declare class MeasurementManager {
    private mean_red;
    private mean_green;
    private mean_blue;
    private timingHist;
    private config;
    private events;
    private isCompleted;
    constructor(config: FaceDetectionSDKConfig, events: MeasurementEvents);
    /**
     * RGB 데이터를 추가합니다.
     */
    addRGBData(lastRGB: LastRGB): void;
    /**
     * 진행률을 업데이트합니다.
     */
    private updateProgress;
    /**
     * 측정을 완료합니다.
     */
    private finalizeMeasurement;
    /**
     * 측정 데이터를 초기화합니다.
     */
    resetData(): void;
    /**
     * ready 상태에서 measuring 상태로 전환하는 카운트다운을 시작합니다.
     */
    startReadyToMeasuringTransition(isReadyState: () => boolean, isFaceDetectiveActive: () => boolean, isFaceInCircle: () => boolean, onStateChange: (state: string) => void): Promise<void>;
}
