import { Scope, EventBinding, ComponentEventListener } from './types'; import { Component } from './component'; interface PendingEvents { target: Element; host: Component; events: Record; } /** * Registers given event listener on `target` element and returns event binding * object to unregister event */ export declare function addEvent(target: Element, type: string, listener: ComponentEventListener, host: Component, scope: Scope): EventBinding; /** * Unregister given event binding */ export declare function removeEvent(type: string, binding: EventBinding): void; /** * Creates structure for collecting pending events */ export declare function pendingEvents(host: Component, target: Element): PendingEvents; export declare function setPendingEvent(pending: PendingEvents, type: string, listener: ComponentEventListener, scope: Scope): void; export declare function finalizePendingEvents(pending: PendingEvents): void; export declare function detachPendingEvents(pending: PendingEvents): void; export declare function safeEventListener(host: Component, handler: EventListener): EventListener; export {};