@civet/core
Version:
15 lines (14 loc) • 653 B
TypeScript
export type NotifierCallback<TriggerArgs extends unknown[]> = {
bivarianceHack(...args: TriggerArgs): void;
}['bivarianceHack'];
type NotifierTrigger<TriggerArgs extends unknown[]> = {
bivarianceHack(...args: TriggerArgs): void;
}['bivarianceHack'];
export default class Notifier<TriggerArgs extends unknown[] = never[]> {
listeners: Set<NotifierCallback<TriggerArgs>>;
subscribe: (callback: NotifierCallback<TriggerArgs>) => (() => void);
once: (callback: NotifierCallback<TriggerArgs>) => (() => void);
isSubscribed: (callback: NotifierCallback<TriggerArgs>) => boolean;
trigger: NotifierTrigger<TriggerArgs>;
}
export {};