export declare abstract class Stream<C, P> {
    private listeners;
    protected constructor();
    on: (type: string, listener: (data: P) => void) => void;
    trigger: (type: string, data: P) => void;
    abstract push(data: C): void;
    pipe<PO>(destination: Stream<P, PO>): void;
    dispose(): void;
}
