const emitter: TypedEventEmitter<{
start: () => void;
stop: () => void;
progress: (progress: number) => void;
}> = new EventEmitter();
emitter.on('progress', (progress) => {
// foo
});
export interface IRecorder extends TypedEventEmitter<{
start: () => void;
stop: () => void;
progress: (progress: number) => void;
}> {
start(): Promise<void>;
stop(): Promise<void>;
}
class Recorder extends EventEmitter implements IRecorder {
// ...
}
const rec: IRecorder = new Recorder();
rec.on('progress', (progress) => {
// ...
});