import type { ShapeDrawerAfterEffectFunction, ShapeDrawerDestroyFunction, ShapeDrawerDrawFunction, ShapeDrawerInitFunction } from "./Types/ShapeDrawerFunctions"; import type { Container } from "./Core/Container"; import type { CustomEventArgs } from "./Types/CustomEventArgs"; import type { CustomEventListener } from "./Types/CustomEventListener"; import type { IInteractor } from "./Core/Interfaces/IInteractor"; import type { IMovePathGenerator } from "./Core/Interfaces/IMovePathGenerator"; import type { IOptions } from "./Options/Interfaces/IOptions"; import type { IParticleMover } from "./Core/Interfaces/IParticlesMover"; import type { IParticleUpdater } from "./Core/Interfaces/IParticleUpdater"; import type { IPlugin } from "./Core/Interfaces/IPlugin"; import type { IShapeDrawer } from "./Core/Interfaces/IShapeDrawer"; import type { Particle } from "./Core/Particle"; import { Plugins } from "./Core/Utils/Plugins"; import type { RecursivePartial } from "./Types/RecursivePartial"; import type { SingleOrMultiple } from "./Types/SingleOrMultiple"; export declare class Engine { readonly plugins: Plugins; private readonly _domArray; private readonly _eventDispatcher; private _initialized; private readonly _loader; constructor(); addEventListener(type: string, listener: CustomEventListener): void; addInteractor(name: string, interactorInitializer: (container: Container) => IInteractor): Promise; addMover(name: string, moverInitializer: (container: Container) => IParticleMover): Promise; addParticleUpdater(name: string, updaterInitializer: (container: Container) => IParticleUpdater): Promise; addPathGenerator(name: string, generator: IMovePathGenerator): Promise; addPlugin(plugin: IPlugin): Promise; addPreset(preset: string, options: RecursivePartial, override?: boolean): Promise; addShape(shape: SingleOrMultiple, drawer: IShapeDrawer | ShapeDrawerDrawFunction, init?: ShapeDrawerInitFunction, afterEffect?: ShapeDrawerAfterEffectFunction, destroy?: ShapeDrawerDestroyFunction): Promise; dispatchEvent(type: string, args: CustomEventArgs): void; dom(): Container[]; domItem(index: number): Container | undefined; init(): void; load(tagId: string | SingleOrMultiple>, options?: SingleOrMultiple>): Promise; loadFromArray(tagId: string, options: RecursivePartial[], index?: number): Promise; loadJSON(tagId: string | SingleOrMultiple, pathConfigJson?: SingleOrMultiple | number, index?: number): Promise; refresh(): Promise; removeEventListener(type: string, listener: CustomEventListener): void; set(id: string | HTMLElement, element: HTMLElement | RecursivePartial, options?: RecursivePartial): Promise; setJSON(id: string | HTMLElement, element: HTMLElement | SingleOrMultiple, pathConfigJson?: SingleOrMultiple | number, index?: number): Promise; setOnClickHandler(callback: (e: Event, particles?: Particle[]) => void): void; }