import { Buffer } from 'buffer';

type ValueOf<T> = T[keyof T];

declare const WHITE_BALANCE_VALUES: {
    readonly 0: "Auto";
    readonly 1: "Auto (white priority)";
    readonly 2: "Auto (ambiance priority)";
    readonly 256: "Daylight";
    readonly 512: "Cloudy";
    readonly 768: "Daylight Fluorescent";
    readonly 769: "Day White Fluorescent";
    readonly 770: "White Fluorescent";
    readonly 771: "Warm White Fluorescent";
    readonly 772: "Living Room Warm White Fluorescent";
    readonly 1024: "Incandescent";
    readonly 1280: "Flash";
    readonly 1536: "Underwater";
    readonly 3840: "Custom";
    readonly 3841: "Custom2";
    readonly 3842: "Custom3";
    readonly 3843: "Custom4";
    readonly 3844: "Custom5";
    readonly 4080: "Kelvin";
};
type WhiteBalance = ValueOf<typeof WHITE_BALANCE_VALUES>;
type WhiteBalanceFineTune = '-9' | '-8' | '-7' | '-6' | '-5' | '-4' | '-3' | '-2' | '-1' | '0' | '+1' | '+2' | '+3' | '+4' | '+5' | '+6' | '+7' | '+8' | '+9';
declare const DYNAMIC_RANGE_SETTING_VALUES: {
    readonly 0: "Auto";
    readonly 1: "Manual";
    readonly 256: "Standard (100%)";
    readonly 512: "Wide1 (230%)";
    readonly 513: "Wide2 (400%)";
    readonly 32768: "Film Simulation";
};
type DynamicRangeSetting = ValueOf<typeof DYNAMIC_RANGE_SETTING_VALUES>;

/**
 * Get the recipe from a Fujifilm maker note.
 * @param makerNote - The maker note as a buffer.
 */
declare function getRecipe(makerNote: Buffer | number[]): {
    FilmMode: "F0/Standard (Provia)" | "F1/Studio Portrait" | "F1a/Studio Portrait Enhanced Saturation" | "F1b/Studio Portrait Smooth Skin Tone (Astia)" | "F1c/Studio Portrait Increased Sharpness" | "F2/Fujichrome (Velvia)" | "F3/Studio Portrait Ex" | "F4/Velvia" | "Pro Neg. Std" | "Pro Neg. Hi" | "Classic Chrome" | "Eterna" | "Classic Negative" | "Bleach Bypass" | "Nostalgic Neg" | "Reala ACE";
    GrainEffectRoughness: "Off" | "Weak" | "Strong";
    GrainEffectSize: "Off" | "Small" | "Large";
    ColorChromeEffect: "Off" | "Weak" | "Strong";
    ColorChromeFxBlue: "Off" | "Weak" | "Strong";
    WhiteBalance: WhiteBalance | `${number}K`;
    Red: WhiteBalanceFineTune;
    Blue: WhiteBalanceFineTune;
    DynamicRange: DynamicRangeSetting | "DR100" | "DR200" | "DR400";
    HighlightTone: "+4" | "+3" | "+2" | "+1" | "0" | "-1" | "-2";
    ShadowTone: "+4" | "+3" | "+2" | "+1" | "0" | "-1" | "-2";
    Saturation: "Film Simulation" | "+4" | "+3" | "+2" | "+1" | "0" | "-1" | "-2" | "-3" | "-4" | "Low" | "None (B&W)" | "B&W Red Filter" | "B&W Yellow Filter" | "B&W Green Filter" | "B&W Sepia" | "Acros" | "Acros Red Filter" | "Acros Yellow Filter" | "Acros Green Filter";
    Sharpness: "Film Simulation" | "+4" | "+3" | "+2" | "+1" | "0" | "-1" | "-2" | "-3" | "-4" | "n/a";
    NoiseReduction: "+4" | "+3" | "+2" | "+1" | "0" | "-1" | "-2" | "-3" | "-4";
    Clarity: "+3" | "+2" | "+1" | "0" | "-1" | "-2" | "-3" | "-4" | "-5";
} | null;

export { getRecipe as default, getRecipe };
