import { d } from './index'; export type ToneMappingMode = 'linear' | 'reinhard' | 'cineon' | 'aces' | 'agx' | 'neutral' | 'hable' | 'unreal'; export declare const linear: import('typegpu').TgpuFn<(color: d.Vec3f) => d.Vec3f>; export declare const reinhard: import('typegpu').TgpuFn<(color: d.Vec3f) => d.Vec3f>; export declare const cineon: import('typegpu').TgpuFn<(color: d.Vec3f) => d.Vec3f>; export declare const aces: import('typegpu').TgpuFn<(color: d.Vec3f) => d.Vec3f>; export declare const agx: import('typegpu').TgpuFn<(color: d.Vec3f) => d.Vec3f>; export declare const neutral: import('typegpu').TgpuFn<(color: d.Vec3f) => d.Vec3f>; export declare const hable: import('typegpu').TgpuFn<(color: d.Vec3f) => d.Vec3f>; export declare const unreal: import('typegpu').TgpuFn<(color: d.Vec3f) => d.Vec3f>; /** Tone mapping curves keyed by ToneMappingMode. Selected at composition (part of pipeline hash). */ export declare const tonemapFns: { readonly linear: import('typegpu').TgpuFn<(color: d.Vec3f) => d.Vec3f>; readonly reinhard: import('typegpu').TgpuFn<(color: d.Vec3f) => d.Vec3f>; readonly cineon: import('typegpu').TgpuFn<(color: d.Vec3f) => d.Vec3f>; readonly aces: import('typegpu').TgpuFn<(color: d.Vec3f) => d.Vec3f>; readonly agx: import('typegpu').TgpuFn<(color: d.Vec3f) => d.Vec3f>; readonly neutral: import('typegpu').TgpuFn<(color: d.Vec3f) => d.Vec3f>; readonly hable: import('typegpu').TgpuFn<(color: d.Vec3f) => d.Vec3f>; readonly unreal: import('typegpu').TgpuFn<(color: d.Vec3f) => d.Vec3f>; }; /** * Linear-sRGB → sRGB OETF. Applied at the very tail of the final pass, after tone mapping. * `mix(a, b, factor)` with a boolean factor is a per-channel select. */ export declare const linearToSrgb: import('typegpu').TgpuFn<(color: d.Vec3f) => d.Vec3f>; /** * sRGB → linear-sRGB EOTF — the inverse of `linearToSrgb`. A texture sampled without a hardware * sRGB view (media textures written from an ImageBitmap/canvas, external video/webcam frames) comes * back gamma-encoded; the composition works in linear light and the final pass re-encodes with * `linearToSrgb`, so a media/external sample MUST be decoded here first or it renders washed-out. * Shared so ImageTexture/WebcamTexture/HTMLInCanvas use one decode. `select(hi, lo, isLow)` is the * per-channel branch on the 0.04045 threshold. */ export declare const srgbToLinear: import('typegpu').TgpuFn<(color: d.Vec3f) => d.Vec3f>; //# sourceMappingURL=tonemap.d.ts.map