md-curcuma
Version:
A Typescript library for transporting and converting markdown and other data.
29 lines (28 loc) • 1.25 kB
TypeScript
interface EventMap {
readable: (data: string) => void;
error: (error: Error) => void;
}
type EventCallback<T extends keyof EventMap> = EventMap[T];
interface IObserver {
on<T extends keyof EventMap>(event: T, callback: EventCallback<T>): void;
off<T extends keyof EventMap>(event: T, callback: EventCallback<T>): void;
once<T extends keyof EventMap>(event: T, callback: EventCallback<T>): void;
emit<T extends keyof EventMap>(event: T, ...args: Parameters<EventCallback<T>>): void;
}
declare class EventObserver implements IObserver {
private events;
constructor();
on<T extends keyof EventMap>(event: T, callback: EventCallback<T>): void;
once<T extends keyof EventMap>(event: T, callback: EventCallback<T>): void;
off<T extends keyof EventMap>(event: T, callback: EventCallback<T>): void;
emit<T extends keyof EventMap>(event: T, ...args: Parameters<EventCallback<T>>): void;
}
declare class Parser {
private observer;
constructor();
on<T extends keyof EventMap>(event: T, callback: EventCallback<T>): void;
once<T extends keyof EventMap>(event: T, callback: EventCallback<T>): void;
parse(data: string): void;
triggerError(error: Error): void;
}
declare const parser: Parser;