export type FilterSettings = {
    sps: number;
    useSMA4?: boolean;
    useNotch50?: boolean;
    useNotch60?: boolean;
    useLowpass?: boolean;
    lowpassHz?: number;
    useHighpass?: boolean;
    highpassHz?: number;
    useBandpass?: boolean;
    bandpassLower?: number;
    bandpassUpper?: number;
    useDCBlock?: boolean;
    DCBresonance?: number;
    useScaling?: boolean;
    scalar?: number;
    offset?: number;
    trimOutliers?: boolean;
    outlierTolerance?: number;
};
export declare class BiquadChannelFilterer {
    idx: number;
    sps: number;
    bandpassLower?: number;
    bandpassUpper?: number;
    useSMA4?: boolean;
    last4?: number[];
    filtered: number;
    trimOutliers?: boolean;
    outlierTolerance?: number;
    useNotch50?: boolean;
    useNotch60?: boolean;
    useLowpass?: boolean;
    lowpassHz?: number;
    useHighpass?: boolean;
    highpassHz?: number;
    useBandpass?: boolean;
    useDCBlock?: boolean;
    DCBresonance?: number;
    useScaling?: boolean;
    offset?: number;
    scalar?: number;
    notch50?: any;
    notch60?: any;
    lp1?: any;
    bp1?: any;
    dcb?: any;
    hp1?: any;
    constructor(options?: FilterSettings);
    reset(sps?: number): void;
    setBandpass(bandpassLower?: number, bandpassUpper?: number, sps?: number): void;
    apply(latestData?: number): number;
}
export declare class Biquad {
    type: string;
    freq: number;
    sps: number;
    Q: number;
    dbGain: number;
    a0: number;
    a1: number;
    a2: number;
    b0: number;
    b1: number;
    b2: number;
    x1: number;
    x2: number;
    y1: number;
    y2: number;
    constructor(type: 'lowpass' | 'highpass' | 'bandpass' | 'notch' | 'peak' | 'lowshelf' | 'highshelf', freq: number, sps: number, Q?: number, dbGain?: number);
    lowpass(A: any, sn: any, cs: any, alpha: any, beta: any): void;
    highpass(A: any, sn: any, cs: any, alpha: any, beta: any): void;
    bandpass(A: any, sn: any, cs: any, alpha: any, beta: any): void;
    notch(A: any, sn: any, cs: any, alpha: any, beta: any): void;
    peak(A: any, sn: any, cs: any, alpha: any, beta: any): void;
    lowshelf(A: any, sn: any, cs: any, alpha: any, beta: any): void;
    highshelf(A: any, sn: any, cs: any, alpha: any, beta: any): void;
    applyFilter(signal_step: any): number;
    zResult(freq: any): number;
    static calcCenterFrequency(freqStart: any, freqEnd: any): number;
    static calcBandwidth(freqStart: any, freqEnd: any): number;
    static calcBandpassQ(frequency: any, bandwidth: any, resonance?: number): number;
    static calcNotchQ(frequency: any, bandwidth: any, resonance?: number): number;
}
export declare class DCBlocker {
    r: number;
    x1: number;
    x2: number;
    y1: number;
    y2: number;
    constructor(r?: number);
    applyFilter(signal_step: any): number;
}
export declare const makeNotchFilter: (frequency: any, sps: any, bandwidth: any) => Biquad;
export declare const makeBandpassFilter: (freqStart: any, freqEnd: any, sps: any, resonance?: number) => Biquad;
