export interface Consumer { push(a: A, changed?: any): void; } export declare class NoopConsumer implements Consumer { push(): void; } export declare const noopConsumer: NoopConsumer; export declare class MultiConsumer implements Consumer { listeners: Consumer[]; constructor(c1: Consumer, c2: Consumer); push(a: A): void; } export declare abstract class Reactive { child: Consumer; nrOfListeners: number; constructor(); subscribe(fn: (a: A) => void): Consumer; addListener(c: Consumer): void; removeListener(listener: Consumer): void; } /** * Things capable of observing behaviors */ export interface Observer { beginPulling(): void; endPulling(): void; push(a: A): void; } export declare class MultiObserver implements Observer { listeners: Observer[]; constructor(c1: Observer, c2: Observer); beginPulling(): void; endPulling(): void; push(a: A): void; } export declare const noopObserver: Observer;