rhamt-core
Version:
23 lines (22 loc) • 625 B
TypeScript
export declare type RhamtEventType = 'message' | 'started' | 'stopped';
export declare class RhamtEvent {
type: RhamtEventType;
data: any;
}
export declare namespace rhamtEvents {
interface Listener<T> {
(event: T): any;
}
interface Disposable {
dispose(): void;
}
class TypedEvent<T> {
private listeners;
private listenersOncer;
on: (listener: Listener<T>) => Disposable;
once: (listener: Listener<T>) => void;
off: (listener: Listener<T>) => void;
emit: (event: T) => void;
pipe: (te: TypedEvent<T>) => Disposable;
}
}