import { vertexvis } from '@vertexvis/frame-streaming-protos';
import { StreamApi } from '@vertexvis/stream-api';
import { Listener } from '@vertexvis/utils';
export declare const DEFAULT_TIMEOUT_IN_MS: number;
export declare class StreamApiEventDispatcher<T> {
    private stream;
    private predicate;
    private transform;
    private timeout;
    private listeners;
    private eventDisposable?;
    private requestDisposable?;
    constructor(stream: StreamApi, predicate: (msg: vertexvis.protobuf.stream.IStreamMessage) => boolean, transform: (msg: vertexvis.protobuf.stream.IStreamMessage) => T | undefined, timeout?: number);
    on(listener: Listener<T>): void;
    off(listener: Listener<T>): void;
    once(): Promise<T>;
    private handleMessage;
    private addListeners;
    private removeListeners;
}
