import { FanOut, type FanOutUnsubscribe, type FanOutListener } from 'thingies/lib/fanout'; /** * Merges multiple fanouts into a single fanout. The merged fanout emits the * same data as the source fanouts. */ export declare class MergeFanOut extends FanOut { private readonly fanouts; private readonly mappper; private unsubs; constructor(fanouts: FanOut[], mappper?: (data: any) => D); listen(listener: FanOutListener): FanOutUnsubscribe; } /** * Buffers data from a fanout and emits the buffered data once per microtask. */ export declare class MicrotaskBufferFanOut extends FanOut { private readonly source; private buffer; private unsub?; constructor(source: FanOut); listen(listener: FanOutListener): FanOutUnsubscribe; clear(): void; } /** * Maps the data from a fanout using a mapper function. */ export declare class MapFanOut extends FanOut { private readonly source; private readonly mapper; constructor(source: FanOut, mapper: (data: I) => O); private unsub?; listen(listener: FanOutListener): FanOutUnsubscribe; clear(): void; } /** * Emits only when the source fanout emits a new value. The first value is * emitted immediately. */ export declare class OnNewFanOut extends FanOut { private readonly source; private last; private unsub?; constructor(source: FanOut, last?: D | undefined); listen(listener: FanOutListener): FanOutUnsubscribe; clear(): void; }