/**
 * @module botframework-streaming
 */
/**
 * Copyright (c) Microsoft Corporation. All rights reserved.
 * Licensed under the MIT License.
 */
import { TransportDisconnectedEventHandler } from '.';
import { SubscribableStream } from '../subscribableStream';
import { TransportDisconnectedEvent } from './transportDisconnectedEvent';
import { IHeader, ITransportReceiver } from '../interfaces';
/**
 * Payload receiver for streaming.
 */
export declare class PayloadReceiver {
    disconnected?: TransportDisconnectedEventHandler;
    private _receiver;
    private _receiveHeaderBuffer;
    private _receivePayloadBuffer;
    private _getStream;
    private _receiveAction;
    /**
     * Get current connected state
     *
     * @returns true if connected to a transport sender.
     */
    get isConnected(): boolean;
    /**
     * Connects to a transport receiver
     *
     * @param receiver The [ITransportReceiver](xref:botframework-streaming.ITransportReceiver) object to pull incoming data from.
     * @returns a promise that resolves when the receiver is complete
     */
    connect(receiver: ITransportReceiver): Promise<void>;
    /**
     * Allows subscribing to this receiver in order to be notified when new data comes in.
     *
     * @param getStream Callback when a new stream has been received.
     * @param receiveAction Callback when a new message has been received.
     */
    subscribe(getStream: (header: IHeader) => SubscribableStream, receiveAction: (header: IHeader, stream: SubscribableStream, count: number) => void): void;
    /**
     * Force this receiver to disconnect.
     *
     * @param event Event arguments to include when broadcasting disconnection event.
     */
    disconnect(event?: TransportDisconnectedEvent): void;
    private receivePackets;
}
//# sourceMappingURL=payloadReceiver.d.ts.map