import { Subject } from './observable'; export declare type EventListener = (Subject) | ((event: T[K]) => void); export declare type EventMap = { [K in keyof HTMLElementEventMap]?: EventListener; } | { [K in keyof SVGElementEventMap]?: EventListener; } | { [k: string]: EventListener<{ [k: string]: Event; }, any>; }; export interface EventListenerEnhancer { (listener: (event: Event) => any): (event: Event) => any; } export declare function getCachedEventListener(target: EventListener, enhancer: EventListenerEnhancer, cache?: WeakMap): Function; export declare function setEventListeners(el: Element, eventmap: EventMap, enhancer: EventListenerEnhancer): void;