import type { MaskInput } from '../src/kaleidoscope/types'; declare class EffectTuningState { blurSigma: number; maskHardness: number; maskThreshold: number; segmentationTargetShortSide: number; debugTiming: boolean; setBlurSigma(value: number): void; setMaskHardness(value: number): void; setMaskThreshold(value: number): void; setSegmentationTargetShortSide(value: number): void; setDebugTiming(value: boolean): void; reset(): void; } export declare const tuning: EffectTuningState; /** * Write the segmentation mask edge (`hardness`, `threshold`) that every * running composite reads each frame. This is the processor-path twin of the * `mask` verb on a `bindKaleidoscope` binding: the mask edge is page-shared * state (one value every kaleidoscope pipeline on the page reads), so a write * here reaches every active pipeline on the next frame with no rebuild. * Values clamp to the `mask` verb's ranges (hardness 0..1, threshold * 0.05..0.95). * * Module-level rather than per-instance because that is the true scope today; * a per-pipeline mask would be a different (future) API, not this one. */ export declare const setMaskTuning: (mask: MaskInput) => void; /** * Derive a smoothstep (lo, hi) range from a hardness factor in [0, 1] and * a threshold in [0.05, 0.95]. Matches `MaskTuning.smoothstepRange` on the * Android side; keep in sync. * * hardness controls width: 0 = soft halo (wide transition), 1 = near-step. * threshold controls the center: 0.5 = neutral, higher = reject low- * confidence pixels (rejects chair-edge regions), lower = more inclusive. */ export declare const maskSmoothstepRange: (hardness: number, threshold: number) => readonly [number, number]; export {}; //# sourceMappingURL=tuning.d.ts.map