export interface Vector3Like {
    x: number;
    y: number;
    z: number;
}
export interface ColorLike {
    r: number;
    g: number;
    b: number;
    a: number;
}
export interface Particle {
    id: number;
    age: number;
    lifetime: number;
    position: Vector3Like;
    previousPosition: Vector3Like;
    velocity: Vector3Like;
    acceleration: Vector3Like;
    color: ColorLike;
    size: number;
    rotation: number;
    angularVelocity: number;
    alive: boolean;
    userData: Record<string, unknown>;
}
export interface ParticleInitialState {
    id?: number;
    age?: number;
    lifetime?: number;
    position?: Partial<Vector3Like>;
    velocity?: Partial<Vector3Like>;
    acceleration?: Partial<Vector3Like>;
    color?: Partial<ColorLike>;
    size?: number;
    rotation?: number;
    angularVelocity?: number;
    alive?: boolean;
    userData?: Record<string, unknown>;
}
export declare function createVector3(value?: Partial<Vector3Like>): Vector3Like;
export declare function cloneVector3(value: Vector3Like): Vector3Like;
export declare function addScaledVector3(target: Vector3Like, source: Vector3Like, scale: number): void;
export declare function setVector3(target: Vector3Like, source: Vector3Like): void;
export declare function createColor(value?: Partial<ColorLike>): ColorLike;
export declare function cloneColor(value: ColorLike): ColorLike;
export declare function createParticle(initial?: ParticleInitialState): Particle;
export declare function normalizedParticleAge(particle: Particle): number;
//# sourceMappingURL=Particle.d.ts.map