import type { ReactiveController, ReactiveControllerHost } from 'lit'; interface ShadowRootEventMap { slotchange: Event; } export declare class EventController implements ReactiveController { private listeners; constructor(host: ReactiveControllerHost); hostDisconnected(): void; listen(window: Window, type: K, listener: (this: Window, ev: WindowEventMap[K]) => void, options?: boolean | AddEventListenerOptions): void; listen(document: Document, type: K, listener: (this: Document, ev: DocumentEventMap[K]) => void, options?: boolean | AddEventListenerOptions): void; listen(element: HTMLElement, type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions): void; listen(element: ShadowRoot, type: K, listener: (this: ShadowRoot, ev: ShadowRootEventMap[K]) => void, options?: boolean | AddEventListenerOptions): void; listen(element: MediaQueryList, type: K, listener: (this: ShadowRoot, ev: MediaQueryListEventMap[K]) => void, options?: boolean | AddEventListenerOptions): void; listen(element: EventTarget, type: string, listener: (this: EventTarget, ev: Event) => void, options?: boolean | AddEventListenerOptions): void; } export {};