import type { IReset } from "@thi.ng/api";
import type { BiquadType, FilterConfig, IFilter } from "./api.js";
import { AProc } from "./aproc.js";
export declare const biquad: (type: BiquadType, fc: number, q?: number, gain?: number) => Biquad;
export declare const biquadLP: (fc: number, q?: number) => Biquad;
export declare const biquadHP: (fc: number, q?: number) => Biquad;
export declare const biquadBP: (fc: number, q?: number) => Biquad;
export declare const biquadNotch: (fc: number, q?: number) => Biquad;
export declare const biquadPeak: (fc: number, q?: number, gain?: number) => Biquad;
export declare const biquadLoShelf: (fc: number, gain?: number) => Biquad;
export declare const biquadHiShelf: (fc: number, gain?: number) => Biquad;
export declare class Biquad extends AProc<number, number> implements IReset, IFilter {
    protected _type: BiquadType;
    protected _freq: number;
    protected _q: number;
    protected _gain: number;
    protected _a0: number;
    protected _a1: number;
    protected _a2: number;
    protected _b1: number;
    protected _b2: number;
    protected _z1: number;
    protected _z2: number;
    constructor(_type: BiquadType, _freq: number, _q?: number, _gain?: number);
    reset(): this;
    next(x: number): number;
    freq(): number;
    q(): number;
    gain(): number;
    set(fc: number, q: number, gain: number): void;
    setFreq(fc: number): void;
    setQ(q: number): void;
    setGain(g: number): void;
    filterCoeffs(): FilterConfig;
    protected calcCoeffs(): void;
}
//# sourceMappingURL=biquad.d.ts.map