declare module BABYLON { class ParticleSystem implements IDisposable { public name: string; static BLENDMODE_ONEONE: number; static BLENDMODE_STANDARD: number; public id: string; public renderingGroupId: number; public emitter: any; public emitRate: number; public manualEmitCount: number; public updateSpeed: number; public targetStopDuration: number; public disposeOnStop: boolean; public minEmitPower: number; public maxEmitPower: number; public minLifeTime: number; public maxLifeTime: number; public minSize: number; public maxSize: number; public minAngularSpeed: number; public maxAngularSpeed: number; public particleTexture: Texture; public onDispose: () => void; public updateFunction: (particles: Particle[]) => void; public blendMode: number; public forceDepthWrite: boolean; public gravity: Vector3; public direction1: Vector3; public direction2: Vector3; public minEmitBox: Vector3; public maxEmitBox: Vector3; public color1: Color4; public color2: Color4; public colorDead: Color4; public textureMask: Color4; public startDirectionFunction: (emitPower: number, worldMatrix: Matrix, directionToUpdate: Vector3) => void; public startPositionFunction: (worldMatrix: Matrix, positionToUpdate: Vector3) => void; private particles; private _capacity; private _scene; private _vertexDeclaration; private _vertexStrideSize; private _stockParticles; private _newPartsExcess; private _vertexBuffer; private _indexBuffer; private _vertices; private _effect; private _customEffect; private _cachedDefines; private _scaledColorStep; private _colorDiff; private _scaledDirection; private _scaledGravity; private _currentRenderId; private _alive; private _started; private _stopped; private _actualFrame; private _scaledUpdateSpeed; constructor(name: string, capacity: number, scene: Scene, customEffect?: Effect); public getCapacity(): number; public isAlive(): boolean; public isStarted(): boolean; public start(): void; public stop(): void; public _appendParticleVertex(index: number, particle: Particle, offsetX: number, offsetY: number): void; private _update(newParticles); private _getEffect(); public animate(): void; public render(): number; public dispose(): void; public clone(name: string, newEmitter: any): ParticleSystem; } }