@benev/slate
Version:
frontend web stuff
25 lines (24 loc) • 693 B
TypeScript
import { Signal } from "../signal.js";
import { Collector } from "../../reactor/types.js";
export type LeanTrack = {
lean: true;
actor: () => void;
};
export type NormalTrack<P> = {
collector: () => P;
responder: ((payload: P) => void) | void;
};
export type Track<P> = LeanTrack | NormalTrack<P>;
export declare class SignalTracker {
#private;
constructor({ all_signals, waiters, }: {
all_signals: Set<Signal<any>>;
waiters: Set<Promise<void>>;
});
observe<P>(collector: Collector<P>): {
payload: P;
recording: Signal<any>[];
};
add_listeners<P>(track: Track<P>, recording: Signal<any>[]): void;
shutdown(): void;
}