import { IEvent, Events, IEventMap, DomEventStore } from "../core/events"; import { RenderTarget } from "../core/types"; interface IDomHandler { domEventStore: DomEventStore; init(...args: any[]): any; destroy(): void; } export declare abstract class DomHandler implements IDomHandler { domEventStore: DomEventStore; abstract init(...args: any[]): any; abstract destroy(): void; } export interface IPlugin extends IDomHandler { el: HTMLElement | null; init(_container?: RenderTarget): RenderTarget; unmount(): void; empty(): void; name: string; tag?: string; } export interface IPluginEvent extends IEvent { target: IPlugin; } export interface IPluginEventMap extends IEventMap { destroy: IPluginEvent; } export declare abstract class Plugin extends Events implements IPlugin { name: string; tag?: string; el: E | null; domEventStore: DomEventStore; constructor(pluginName: string, tag?: keyof HTMLElementTagNameMap, classNames?: string); protected abstract beforeDestroy(): void; abstract init(_container?: RenderTarget): RenderTarget; empty(): void; unmount(): void; destroy(): void; getEl(): E | null; setEl(el: E): void; } export {};