import { PushAdapter } from '../common';
/**
* Multicasts pushed values to a variable number of async iterable iterators
* as receivers or subscribers.
*
* Does not buffer pushed values; if no receivers are registered, pushed
* values are silently discarded.
*/
export default class Multicast implements AsyncIterable {
private readonly init;
onStart?(): void;
onStop?(): void;
readonly receivers: Set>;
constructor(init?: () => PushAdapter);
/**
* Pushes a value to all registered receivers.
*/
push(value: A): this;
/**
* Creates and registers a receiver.
*/
[Symbol.asyncIterator](): AsyncIterableIterator;
}