/**
* Handles the work of keeping video ssrcs consistent across multiple
* o/a cycles, making it such that all stream operations can be
* kept local and do not need to be signaled.
* NOTE: This only keeps the 'primary' video ssrc consistent: meaning
* the primary video stream
*/
export default class SdpConsistency {
/**
* Constructor
* @param {string} logPrefix the log prefix appended to every logged
* message, currently used to distinguish for which
* TraceablePeerConnection the instance works.
*/
constructor(logPrefix: string);
logPrefix: string;
/**
* Clear the cached video primary and primary rtx ssrcs so that
* they will not be used for the next call to
* makeVideoPrimarySsrcsConsistent
*/
clearVideoSsrcCache(): void;
cachedPrimarySsrc: any;
injectRecvOnly: boolean;
/**
* Explicitly set the primary ssrc to be used in
* makeVideoPrimarySsrcsConsistent
* @param {number} primarySsrc the primarySsrc to be used
* in future calls to makeVideoPrimarySsrcsConsistent
* @throws Error if primarySsrc is not a number
*/
setPrimarySsrc(primarySsrc: number): void;
/**
* Checks whether or not there is a primary video SSRC cached already.
* @return {boolean}
*/
hasPrimarySsrcCached(): boolean;
/**
* Given an sdp string, either:
* 1) record the primary video and primary rtx ssrcs to be
* used in future calls to makeVideoPrimarySsrcsConsistent or
* 2) change the primary and primary rtx ssrcs in the given sdp
* to match the ones previously cached
* @param {string} sdpStr the sdp string to (potentially)
* change to make the video ssrcs consistent
* @returns {string} a (potentially) modified sdp string
* with ssrcs consistent with this class' cache
*/
makeVideoPrimarySsrcsConsistent(sdpStr: string): string;
}