export interface GradeSignalFrame {
    [key: string]: number | undefined;
    ptsTime?: number;
    YMIN?: number;
    YLOW?: number;
    YAVG?: number;
    YHIGH?: number;
    YMAX?: number;
    UAVG?: number;
    VAVG?: number;
    SATAVG?: number;
}
export interface GradeMediaProbe {
    duration: number | null;
    colorSpace: string;
    transfer: string;
    primaries: string;
    pixelFormat: string;
}
export interface MediaGradeAdjust {
    exposure: number;
    contrast: number;
    whites: number;
    blacks: number;
    temperature: number;
    tint: number;
}
export interface MediaTreatmentMeasurements {
    frames: number;
    yMin: number;
    yLow: number;
    yAvg: number;
    yHigh: number;
    yMax: number;
    uAvg: number;
    vAvg: number;
    satAvg: number;
    shadowClipRisk: number;
    highlightClipRisk: number;
}
export interface MediaTreatmentAnalysis {
    adjust: MediaGradeAdjust;
    measured: MediaTreatmentMeasurements;
    source: {
        colorSpace: string;
        transfer: string;
        primaries: string;
        pixelFormat: string;
        hdr: boolean;
        log: "unknown";
    };
    diagnosis: string[];
    warnings: string[];
}
type NumericStats = Readonly<Record<string, number | undefined>>;
export declare function parseMediaTreatmentSignalStats(raw: string): GradeSignalFrame[];
export declare function statsToAdjust(stats: NumericStats): Pick<MediaTreatmentAnalysis, "adjust" | "measured">;
export declare function summarizeMediaTreatmentAnalysis(probe: GradeMediaProbe, frames: readonly GradeSignalFrame[]): MediaTreatmentAnalysis;
export declare function analyzeMediaGrade(mediaPath: string, options?: {
    ffmpegPath?: string;
    ffprobePath?: string;
}): MediaTreatmentAnalysis;
export declare function formatMeasuredNote(mediaPath: string, measured: MediaTreatmentMeasurements): string;
export {};
//# sourceMappingURL=mediaGradeAnalyzer.d.ts.map