import { ISetRemoteDescriptionRequest } from './SetRemoteDescription';
export type SubscribeStatus = 'ok' | 'no-stream';
export interface ISubscribeRequest {
    apiVersion: number;
    clientVersion: string;
    bearerToken: string;
    failureCount: number;
    httpRoundTripTime: number;
}
export interface ISubscribeWithOfferRequest extends ISubscribeRequest {
    setRemoteDescription: ISetRemoteDescriptionRequest;
    createAnswerDescription: {
        apiVersion: number;
    };
}
export interface ISubscribeWithoutOfferRequest extends ISubscribeRequest {
    createOfferDescription: {
        apiVersion: number;
    };
}
export interface ISubscribeSuccessResponse {
    status: 'ok';
    streamId: string;
    sharedSecret: string;
    lag: number;
    rtcConfiguration?: RTCConfiguration;
    setRemoteDescriptionResponse?: {
        sessionDescription: RTCSessionDescription;
    };
    createOfferDescriptionResponse?: {
        sessionDescription: RTCSessionDescription;
    };
    createAnswerDescriptionResponse?: {
        sessionDescription: RTCSessionDescription;
    };
}
export interface ISubscribeFailureResponse {
    status: SubscribeStatus;
}
