type Input = { timestamp: number; }; type Output = { timestamp: number; }; type Processed = {}; type Progress = { smallestProgress: number; }; type IoEventMap = { input: Input; output: Output; processed: Processed; progress: Progress; }; export type IoEventTypes = keyof IoEventMap; export type CallbackListener = (data: { detail: IoEventMap[T]; }) => void; type IoListeners = { [EventType in IoEventTypes]: CallbackListener[]; }; export declare class IoEventEmitter { listeners: IoListeners; addEventListener(name: Q, callback: CallbackListener): void; removeEventListener(name: Q, callback: CallbackListener): void; dispatchEvent(dispatchName: T, context: IoEventMap[T]): void; } export {};