export declare class ChannelGainController { private baseline; private initialized; private readonly targetLevel; reset(): void; process(r: number, g: number, b: number): { r: number; g: number; b: number; }; } export declare class ChromPulseModel { private readonly windowSize; private rQueue; private gQueue; private bQueue; constructor(windowSize?: number); reset(): void; process(r: number, g: number, b: number): number; } export declare function computeSignalSnrDb(values: number[]): number; /** * Streaming cardiac bandpass: a high-pass at `lowHz` cascaded with a low-pass * at `highHz`. Feed one sample per frame via {@link process}. */ export declare class Bandpass { private readonly hp; private readonly lp; constructor(sampleRate: number, lowHz?: number, highHz?: number); reset(): void; process(value: number): number; } /** * Zero-phase bandpass via forward-backward filtering (filtfilt). Filtering * twice in opposite directions cancels the phase response, so beat timing is * not shifted by the filter — at the cost of being offline (whole-buffer). */ export declare function zeroPhaseBandpass(values: number[], sampleRate: number, lowHz?: number, highHz?: number): number[]; /** * In-band spectral SNR (linear): peak power in the cardiac band divided by the * band's mean power, via a Hann-windowed DFT evaluated on a coarse frequency * grid. ~1 means no usable pulse peak; higher means a clean periodic signal. * Used to weight ROIs by quality and to gate HR/HRV display. */ export declare function spectralSnr(signal: number[], sampleRate: number, minHz?: number, maxHz?: number): number; //# sourceMappingURL=rppgSignalModel.d.ts.map