export interface Subject extends AsyncIterable { /** * whether the subject has been disposed. */ readonly isDisposed: boolean; /** * push an item into the subject to yield * @param {T} item the item to buffer and yield to the consumer. * @returns {number} the number of items stored in the internal buffer */ next(item: T): number; /** * immediately rethrow an error to the consumer * @param err the error object to rethrow */ error(err: any): void; /** * signal the the pushed sequence is complete */ done(): void; /** * raised when the Subject has been disposed */ on(event: "disposed", cb: () => void): any; /** * raised when the Subject has yielded an item. * @param {number} cb.remaining remaining items in the internal buffer */ on(event: "pull", cb: (remaining: number) => void): any; } export default function (): Subject;