import type { ICopy, IReset } from "@thi.ng/api";
import { AGen } from "./agen.js";
/**
 * https://en.wikipedia.org/wiki/Dirac_comb
 *
 * @param period -
 * @param start -
 */
export declare const impulseTrain: (period: number, start?: number) => ImpulseTrain<number>;
export declare const impulseTrainT: <T>(on: T, off: T, period: number, start?: number) => ImpulseTrain<T>;
export declare const impulseTrainB: (period: number, start?: number) => ImpulseTrain<boolean>;
export declare class ImpulseTrain<T> extends AGen<T> implements ICopy<ImpulseTrain<T>>, IReset {
    protected _on: T;
    protected _off: T;
    protected _period: number;
    protected _pos: number;
    protected _startpos: number;
    constructor(_on: T, _off: T, _period: number, _pos?: number);
    copy(): ImpulseTrain<T>;
    reset(): this;
    next(): T;
}
//# sourceMappingURL=impulse-train.d.ts.map