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;
}