import type { LitElement } from 'lit'; import type { AbstractConstructor, Constructor } from './constructor.js'; export type UnpackCustomEvent = T extends CustomEvent ? U : never; export declare class EventEmitterInterface { addEventListener(type: K, listener: (this: HTMLElement, ev: M[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLElement, ev: M[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; emitEvent>(type: K, eventInitDict?: CustomEventInit): boolean; } export declare function EventEmitterMixin>(superClass: T): Constructor> & T;