///
import { RtcpHeader } from "../header";
export declare class TransportWideCC {
static count: number;
count: number;
length: number;
senderSsrc: number;
mediaSourceSsrc: number;
baseSequenceNumber: number;
packetStatusCount: number;
/** 24bit multiples of 64ms */
referenceTime: number;
fbPktCount: number;
packetChunks: (RunLengthChunk | StatusVectorChunk)[];
recvDeltas: RecvDelta[];
header: RtcpHeader;
constructor(props?: Partial);
static deSerialize(data: Buffer, header: RtcpHeader): TransportWideCC;
serialize(): Buffer;
get packetResults(): PacketResult[];
}
export declare class RunLengthChunk {
type: PacketChunk.TypeTCCRunLengthChunk;
packetStatus: PacketStatus;
/** 13bit */
runLength: number;
constructor(props?: Partial);
static deSerialize(data: Buffer): RunLengthChunk;
serialize(): Buffer;
results(currentSequenceNumber: number): PacketResult[];
}
export declare class StatusVectorChunk {
type: number;
symbolSize: number;
symbolList: number[];
constructor(props?: Partial);
static deSerialize(data: Buffer): StatusVectorChunk;
serialize(): Buffer;
}
export declare class RecvDelta {
/**optional (If undefined, it will be set automatically.)*/
type?: PacketStatus.TypeTCCPacketReceivedSmallDelta | PacketStatus.TypeTCCPacketReceivedLargeDelta;
/**micro sec */
delta: number;
constructor(props?: Partial);
static deSerialize(data: Buffer): RecvDelta;
deSerialize(data: Buffer): void;
parsed: boolean;
parseDelta(): void;
serialize(): Buffer;
}
export declare enum PacketChunk {
TypeTCCRunLengthChunk = 0,
TypeTCCStatusVectorChunk = 1,
packetStatusChunkLength = 2
}
export declare enum PacketStatus {
TypeTCCPacketNotReceived = 0,
TypeTCCPacketReceivedSmallDelta = 1,
TypeTCCPacketReceivedLargeDelta = 2,
TypeTCCPacketReceivedWithoutDelta = 3
}
export declare class PacketResult {
sequenceNumber: number;
delta: number;
received: boolean;
receivedAtMs: number;
constructor(props: Partial);
}