export interface ConfettiOptions { /** Number of particles (default 30) */ count?: number; /** Spread angle in degrees (default 90) */ spread?: number; /** Initial velocity in px/frame (default 12) */ velocity?: number; /** Gravity in px/frame² (default 0.5) */ gravity?: number; /** Particle size range [min, max] in px (default [6, 10]) */ size?: [number, number]; /** Colors array (default: rainbow) */ colors?: string[]; /** Duration before cleanup in ms (default 2000) */ duration?: number; /** Trigger: 'click' | 'manual' (default 'click') */ trigger?: 'click' | 'manual'; /** Particle shapes: 'square' | 'circle' | 'mixed' (default 'mixed') */ shapes?: 'square' | 'circle' | 'mixed'; /** Disable the controller */ disabled?: boolean; } /** Burst of confetti particles from an element. DOM-based particles with randomized trajectories + gravity. */ export declare class ConfettiController { #private; readonly host: HTMLElement; count: number; spread: number; velocity: number; gravity: number; size: [number, number]; colors: string[]; duration: number; trigger: 'click' | 'manual'; shapes: 'square' | 'circle' | 'mixed'; disabled: boolean; constructor(host: HTMLElement, options?: ConfettiOptions); get active(): boolean; attach(): void; detach(): void; destroy(): void; /** Programmatic trigger — burst confetti from the host element. */ fire(): void; } //# sourceMappingURL=confetti-controller.d.ts.map