import { EventListener, EventName, LDLogger } from '../../api';
import { DataSourceErrorKind } from '../../datasource';
import { ObjProcessors, PayloadListener } from './payloadProcessor';
/**
 * Interface for an event stream.  Only allows listening to events.
 */
export interface EventStream {
    addEventListener(type: EventName, listener: EventListener): void;
}
/**
 * A FDv2 PayloadStreamReader can be used to parse payloads from a stream of FDv2 events.  See {@link PayloadProcessor}
 * for more details.
 */
export declare class PayloadStreamReader {
    private readonly _errorHandler?;
    private readonly _logger?;
    private _payloadProcessor;
    /**
     * Creates a PayloadStreamReader
     *
     * @param eventStream event stream of FDv2 events
     * @param _objProcessors defines object processors for each object kind.
     * @param _errorHandler that will be called with parsing errors as they are encountered
     * @param _logger for logging
     */
    constructor(eventStream: EventStream, _objProcessors: ObjProcessors, _errorHandler?: ((errorKind: DataSourceErrorKind, message: string) => void) | undefined, _logger?: LDLogger | undefined);
    addPayloadListener(listener: PayloadListener): void;
    removePayloadListener(listener: PayloadListener): void;
    private _attachHandler;
}
//# sourceMappingURL=payloadStreamReader.d.ts.map