import { Vector2D, Size2D } from '../../core/src/index.ts'; export declare abstract class Particle { #private; protected size: number; protected color: string; protected position: Vector2D; constructor(origin: Vector2D, speed: number, size: number, color: string, angle: number); abstract draw(ctx: OffscreenCanvasRenderingContext2D, canvasSize: Size2D): any; move(): void; shouleRemove(canvasSize: Size2D): boolean; } export declare class Circle extends Particle { draw(ctx: OffscreenCanvasRenderingContext2D, canvasSize: Size2D): void; } export declare class Star extends Particle { #private; constructor(origin: Vector2D, size: number, speed: number, color: string, angle: number); draw(ctx: OffscreenCanvasRenderingContext2D, canvasSize: Size2D): void; } type ParticleConstructor = { new (origin: Vector2D, speed: number, size: number, color: string, angle: number): Particle; }; export declare class ParticleFactory { static shapeMap: Map; static create(shape: string, origin: Vector2D, speed: number, size: number, color: string, angle: number): Particle; } export {}; //# sourceMappingURL=particle.d.ts.map