export declare type MountFunction = (callback: MountCallback) => void; export declare type RefreshFunction = (callback: MountCallback) => void; export declare type MountCallback = () => void; export declare class MDOMPlugin { static get, OptionsType>(constructorFunction: { defaultMountPoint: string; new (element: HTMLElement, options: OptionsType): PluginType; }, element: HTMLElement): PluginType | undefined; static getRecursive, OptionsType>(constructorFunction: { defaultMountPoint: string; new (element: HTMLElement, options: OptionsType): PluginType; }, element: HTMLElement): PluginType | undefined; static attach, OptionsType>(constructorFunction: { defaultMountPoint: string; new (element: HTMLElement, options: OptionsType): PluginType; }, element: HTMLElement, options: OptionsType): DomPlugin; static detach, OptionsType>(constructorFunction: { defaultMountPoint: string; new (element: HTMLElement, options: OptionsType): PluginType; }, element: HTMLElement): void; private static internalAttach; private static internalUpdate; private static mountPlugin; private static refreshPlugin; private static getMountFunction; } export interface DomPlugin { element: HTMLElement; options: OptionsType; attach(mount: MountFunction): void; update(options: any, refresh: RefreshFunction): void; detach(): void; addEventListener(eventName: string, listener: EventListenerOrEventListenerObject): void; removeEventListener(eventName: string, listener?: EventListenerOrEventListenerObject): void; removeAllEvents(): void; } export declare abstract class MElementDomPlugin implements DomPlugin { protected attachedEvents: Map; protected _options: OptionsType; private readonly _element; get element(): HTMLElement; get options(): OptionsType; constructor(element: HTMLElement, options: OptionsType); abstract attach(mount: MountFunction): void; abstract update(options: any, refresh: RefreshFunction): void; abstract detach(): void; addEventListener(eventName: string, listener: EventListenerOrEventListenerObject, useCapture?: boolean | undefined): void; removeEventListener(eventName: string): void; removeAllEvents(): void; } //# sourceMappingURL=domPlugin.d.ts.map