import type { Container, Engine, GenericInitializer, IOptions, IParticlesOptions, Options, Particle, ParticlesOptions, PluginManager, RecursivePartial } from "@tsparticles/engine"; import type { IInteractivity } from "./Options/Interfaces/IInteractivity.js"; import type { IInteractor } from "./Interfaces/IInteractor.js"; import type { Interactivity } from "./Options/Classes/Interactivity.js"; export type IInteractivityOptions = IOptions & { interactivity?: IInteractivity; }; export type InteractivityOptions = Options & { interactivity?: Interactivity; }; export type InteractivityContainer = Container & { actualOptions: InteractivityOptions; addClickHandler?: (callback: (evt: Event, particles?: Particle[]) => void) => void; }; export type InteractivityParticle = Particle & { interactivity?: Interactivity; options: InteractivityParticlesOptions; }; export type IInteractivityParticlesOptions = IParticlesOptions & { interactivity?: RecursivePartial; }; export type InteractivityParticlesOptions = RecursivePartial & { interactivity?: RecursivePartial; }; export type InteractorInitializer = GenericInitializer; export type InteractivityPluginManager = PluginManager & { addInteractor?: (name: string, interactorInitializer: InteractorInitializer) => void; getInteractors?: (container: Container, force?: boolean) => Promise; initializers: { interactors?: Map; }; interactors?: Map; setOnClickHandler?: (callback: (e: Event, particles?: Particle[]) => void) => void; }; export type InteractivityEngine = Engine & { pluginManager: InteractivityPluginManager; };