import { Unlisten } from './unlisten'; export declare function listen(obj: HTMLElement, type: (K | string) | (K | string)[], listener: (event: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): Unlisten; export declare function listen(obj: Document, type: (K | string) | (K | string)[], listener: (event: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): Unlisten; export declare function listen(obj: Window, type: (K | string) | (K | string)[], listener: (event: WindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): Unlisten; export declare function listen(obj: HTMLElement | Window | Document, type: (K | string) | (K | string)[], listener: (event: (HTMLElementEventMap | DocumentEventMap | WindowEventMap)[K]) => any, options?: boolean | AddEventListenerOptions): Unlisten; export declare function listenOnce(obj: HTMLElement, type: (K | string) | (K | string)[], listener: (event: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): Unlisten; export declare function listenOnce(obj: Document, type: (K | string) | (K | string)[], listener: (event: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): Unlisten; export declare function listenOnce(obj: Window, type: (K | string) | (K | string)[], listener: (event: WindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): Unlisten; export declare function listenOnce(obj: HTMLElement | Window | Document, type: (K | string) | (K | string)[], listener: (event: (HTMLElementEventMap | DocumentEventMap | WindowEventMap)[K]) => any, options?: boolean | AddEventListenerOptions): Unlisten;