/** * Used internally to help keep track of event listeners * that need to be disposed * @internal */ export declare type AnyEventTarget, P extends keyof EventMap, Args extends EventMap[P] = EventMap[P]> = { readonly on?: (event: P, listener: (...args: Args) => void) => void; readonly off?: (event: P, listener: (...args: Args) => void) => void; readonly addListener?: (event: P, listener: (...args: Args) => void) => void; readonly removeListener?: (event: P, listener: (...args: Args) => void) => void; readonly addEventListener?: (event: P, listener: (...args: Args) => void) => void; readonly removeEventListener?: (event: P, listener: (...args: Args) => void) => void; }; export interface Listener, P extends keyof EventMap = keyof EventMap, Args extends EventMap[P] = EventMap[P], Target extends AnyEventTarget = AnyEventTarget> { readonly target: Target; readonly event: keyof EventMap; readonly cb: (...args: Args) => void; }