import { type Fn } from "@thi.ng/api/fn";
import type { StatelessOscillator } from "./api.js";
/**
 * Higher order function to produce an additive version of given
 * {@link StatelessOscillator}. Returns new oscillator function.
 *
 * @remarks
 * The `freqFn` and `ampFn` functions are used to compute respective frequency
 * and amplitude factors for each of the `n` requested harmonics (given in
 * `[i,n]` range).
 *
 * @param osc -
 * @param freqFn -
 * @param ampFn -
 * @param n -
 */
export declare const additive: (osc: StatelessOscillator, freqFn: Fn<number, number>, ampFn: Fn<number, number>, n: number) => StatelessOscillator;
/**
 * Returns a {@link StatelessOscillator} which constructs a square waveform from
 * `n` partials. If `useGibbs` is true (default), also applies {@link gibbs} to
 * each partial.
 *
 * @remarks
 * [Interactive graph of this oscillator](https://www.desmos.com/calculator/irugw6gnhy)
 *
 * @param n - number of partials
 * @param useGibbs -
 */
export declare const squareAdditive: (n?: number, useGibbs?: boolean) => StatelessOscillator;
/**
 * Returns a {@link StatelessOscillator} which constructs a sawtooth waveform
 * from `n` partials. If `useGibbs` is true (default), also applies
 * {@link gibbs} to each partial.
 *
 * @remarks
 * [Interactive graph of this oscillator](https://www.desmos.com/calculator/irugw6gnhy)
 *
 * @param n - number of partials
 * @param useGibbs -
 */
export declare const sawAdditive: (n?: number, useGibbs?: boolean) => StatelessOscillator;
//# sourceMappingURL=osc-additive.d.ts.map