import type { IEmitter, ISubject, ISubscription, IUnsubscriber } from "./types"; import Observable from "./Observable"; export default class Subject extends Observable implements ISubject { protected keyCounter: number; protected subscribers: Map>; constructor(); next(value: T): void; error(value: T): void; protected _subscribe(emitter: IEmitter): IUnsubscriber | ISubscription | void; }