import { Source, Subscriber, Subscription } from "./_core"; import { Transaction } from "./_tx"; export declare abstract class Dispatcher implements Subscriber, Source { protected source: Source; readonly weight: number; protected sink: Subscriber; protected subs: Subscription; protected ord: number; protected active: boolean; protected msc: MulticastSubscriber; constructor(source: Source); subscribe(subscriber: Subscriber, order: number): Subscription; activate(subscriber: Subscriber, initialNeeded: boolean): void; dispose(node: MCSNode): void; reorder(order: number): void; next(tx: Transaction, val: T): void; error(tx: Transaction, err: Error): void; end(tx: Transaction): void; protected removeNode(node: MCSNode): { order: number; next: Subscriber; }; protected reorderAfterRemoval(order: number): void; protected firstSubscribe(subscriber: Subscriber, order: number): Subscription; protected lateSubscribe(subscriber: Subscriber, order: number): Subscription; private makeSubs; } declare class MulticastSubscriber implements Subscriber { private h; constructor(head: MCSNode); add(node: MCSNode): void; removeReturnMaxOrder(node: MCSNode): { order: number; next: Subscriber; }; removeReturnMinOrder(node: MCSNode): { order: number; next: Subscriber; }; next(tx: Transaction, val: T): void; error(tx: Transaction, err: Error): void; end(tx: Transaction): void; private remove; } export interface MCSNode { s: Subscriber; o: number; a: boolean; h: MCSNode | null; t: MCSNode | null; } export {};