import { Burst } from "./Burst";
import { ParticleCompositeCurve } from "./ParticleCompositeCurve";
import { ParticleGeneratorModule } from "./ParticleGeneratorModule";
import { BaseShape } from "./shape/BaseShape";
/**
 * The EmissionModule of a Particle Generator.
 */
export declare class EmissionModule extends ParticleGeneratorModule {
    private static _tempEmitPosition;
    /**  The rate of particle emission. */
    rateOverTime: ParticleCompositeCurve;
    /**  The rate at which the emitter spawns new particles over distance. */
    rateOverDistance: ParticleCompositeCurve;
    _shape: BaseShape;
    private _distanceAccumulator;
    private _lastEmitPosition;
    private _hasLastEmitPosition;
    private _bursts;
    private _currentBurstIndex;
    private _burstRand;
    /**
     * @inheritdoc
     */
    get enabled(): boolean;
    set enabled(value: boolean);
    /**
     * The shape of the emitter.
     */
    get shape(): BaseShape;
    set shape(value: BaseShape);
    /**
     * Gets the burst array.
     */
    get bursts(): ReadonlyArray<Burst>;
    /**
     * Add a single burst.
     * @param burst - The burst
     */
    addBurst(burst: Burst): void;
    /**
     * Remove a single burst from the array of bursts.
     * @param burst - The burst data
     */
    removeBurst(burst: Burst): void;
    /**
     * Remove a single burst from the array of bursts.
     * @param index - The burst data index
     */
    removeBurstByIndex(index: number): void;
    /**
     * Clear burst data.
     */
    clearBurst(): void;
    private _emitByRateOverTime;
    private _emitByRateOverDistance;
    private _emitByBurst;
    private _emitBySubBurst;
}
