import { Source, Subscriber, Subscription } from "../_core"; import { Transaction } from "../_tx"; export declare enum EventType { NEXT = 1, ERROR = 2, END = 3 } export declare abstract class Operator implements Subscriber, Source, Subscription { protected source: Source; readonly weight: number; protected sink: Subscriber; protected active: boolean; protected ord: number; protected subs: Subscription; constructor(source: Source); subscribe(subscriber: Subscriber, order: number): Subscription; activate(initialNeeded: boolean): void; reorder(order: number): void; dispose(): void; abstract next(tx: Transaction, val: A): void; error(tx: Transaction, err: Error): void; end(tx: Transaction): void; protected init(subscriber: Subscriber, order: number, subscription: Subscription): void; } export interface PipeSubscriber { pipedNext(sender: Pipe, tx: Transaction, val: T): void; pipedError(sender: Pipe, tx: Transaction, err: Error): void; pipedEnd(sender: Pipe, tx: Transaction): void; } export declare class Pipe implements Subscriber { s: PipeSubscriber; constructor(s: PipeSubscriber); next(tx: Transaction, val: T): void; error(tx: Transaction, err: Error): void; end(tx: Transaction): void; } export declare class LinkedPipe extends Pipe { h: LinkedPipe | null; t: LinkedPipe | null; constructor(s: PipeSubscriber, h: LinkedPipe | null, t: LinkedPipe | null); } export declare class LinkedPipeList { size: number; private h; constructor(subscribers: Array>); head(): LinkedPipe | null; append(subscriber: PipeSubscriber): LinkedPipe; remove(node: LinkedPipe): void; clear(): void; } export declare class Identity extends Operator { next(tx: Transaction, val: T): void; }