import type * as Platform from '../platform/platform.js'; import { type EventDescriptor, type EventListener, type EventTarget, type EventTargetEvent, type EventPayloadToRestParameters } from './EventTarget.js'; export interface ListenerCallbackTuple { thisObject?: Object; listener: EventListener; disposed?: boolean; } export declare class ObjectWrapper implements EventTarget { listeners?: Map>>; addEventListener(eventType: T, listener: EventListener, thisObject?: Object): EventDescriptor; once(eventType: T): Promise; removeEventListener(eventType: T, listener: EventListener, thisObject?: Object): void; hasEventListeners(eventType: keyof Events): boolean; dispatchEventToListeners(eventType: Platform.TypeScriptUtilities.NoUnion, ...[eventData]: EventPayloadToRestParameters): void; } type Constructor = new (...args: any[]) => {}; export declare function eventMixin(base: Base): { new (...args: any[]): { "__#13@#events": ObjectWrapper; addEventListener(eventType: T, listener: (arg0: EventTargetEvent) => void, thisObject?: Object): EventDescriptor; once(eventType: T_1): Promise; removeEventListener(eventType: T_2, listener: (arg0: EventTargetEvent) => void, thisObject?: Object): void; hasEventListeners(eventType: keyof Events): boolean; dispatchEventToListeners(eventType: Platform.TypeScriptUtilities.NoUnion, ...eventData: EventPayloadToRestParameters): void; }; } & Base; export {};