UNPKG

@protorians/signalable

Version:

Signal's Events Manager

20 lines (19 loc) 744 B
import type { ISignalListenOption } from "./options.js"; import type { ISignalEntries } from "./entries.js"; export interface ISignalable<I, D> { get signalable(): I; listen(options: ISignalListenOption<I, D>): this; dispatch(args: D): this; cancel(): this; status(status: boolean): this; option(index: number): ISignalListenOption<I, D>; get options(): ISignalListenOption<I, D>[]; } export interface ISignalables<I, B> { get signalable(): I; get entries(): ISignalEntries<I, B>; listen<K extends keyof B>(type: K, callback: ISignalListenOption<I, B[K]>): this; dispatch<K extends keyof B>(type: K, details: B[K]): this; entry(type: keyof B): ISignalEntries<I, B>[keyof B]; reset(): this; }