import { StreamSetupListener } from '../../dom/StreamSetupListener';
import ChannelContext from '../context/ChannelContext';
import PeerConnectionContext from '../context/PeerConnectionContext';
import StreamTransformContext from '../context/StreamTransformContext';
import FrameTimingInformationContext from '../context/FrameTimingInformationContext';
import { IStream } from './IStream';
export default class RealTimeStream implements IStream {
    private readonly _logger;
    private readonly _channelContext;
    private readonly _peerConnectionContext;
    private readonly _streamTransformContext;
    private readonly _frameTimingInformationContext;
    private readonly _handleStreamFailure;
    private readonly _disposables;
    constructor(channelContext: ChannelContext, peerConnectionContext: PeerConnectionContext, streamTransformContext: StreamTransformContext, frameTimingInformationContext: FrameTimingInformationContext, handleStreamFailure: () => Promise<void>);
    start(uri: URL, token: string, listenOnStreamSetup: StreamSetupListener, playMediaStreamInVideoElement: Function): Promise<void>;
    private applyRtcConfiguration;
    private reconnectPeerConnection;
    dispose(): void;
    private mapSetRemoteDescriptionStatusToChannelStatus;
}
