type RtcStatsVersion = {
    date: Date;
};
export declare const version: RtcStatsVersion;
export declare enum StatsType {
    codec = "codec",
    inboundRtp = "inbound-rtp",
    outboundRtp = "outbound-rtp",
    remoteInboundRtp = "remote-inbound-rtp",
    remoteOutboundRtp = "remote-outbound-rtp",
    mediaSource = "media-source",
    mediaPlayout = "media-playout",
    peerConnection = "peer-connection",
    dataChannel = "data-channel",
    transport = "transport",
    candidatePair = "candidate-pair",
    localCandidate = "local-candidate",
    remoteCandidate = "remote-candidate",
    certificate = "certificate",
    stream = "stream",
    track = "track",
    transceiver = "transceiver",
    csrc = "csrc",
    sender = "sender",
    receiver = "receiver",
    sctpTransport = "sctp-transport",
    iceServer = "ice-server"
}
export type RtcMediaSourceCompoundStats = RtcAudioSourceStats | RtcVideoSourceStats;
export type RtcSenderCompoundStats = RtcAudioSenderStats | RtcVideoSenderStats;
export type RtcReceiverCompoundStats = RtcAudioReceiverStats | RtcVideoReceiverStats;
export type RtcLocalCandidateStats = RtcIceCandidateStats;
export type RtcRemoteCandidateStats = RtcIceCandidateStats;
export interface RtcStats {
    id: string;
    type: string;
    timestamp: number;
}
export type RtcMediaKind = "audio" | "video";
export interface RtcRtpStreamStats extends RtcStats {
    ssrc: number;
    kind: RtcMediaKind;
    transportId?: string;
    codecId?: string;
}
export type RtcCodecType = "encode" | "decode";
export interface RtcCodecStats extends RtcStats {
    payloadType: string;
    transportId: string;
    mimeType: string;
    clockRate?: number;
    channels?: number;
    sdpFmtpLine?: string;
}
export interface RtcReceivedRtpStreamStats extends RtcRtpStreamStats {
    packetsReceived?: number;
    packetsLost?: number;
    jitter?: number;
    framesDropped?: number;
}
export type DscpPacketStats = Record<string, number>;
export interface RtcInboundRtpStreamStats extends RtcReceivedRtpStreamStats {
    trackIdentifier?: string;
    mid?: string;
    remoteId?: string;
    framesDecoded?: number;
    keyFramesDecoded?: number;
    frameWidth?: number;
    frameHeight?: number;
    framesPerSecond?: number;
    qpSum?: number;
    totalDecodeTime?: number;
    totalInterFrameDelay?: number;
    totalSquaredInterFrameDelay?: number;
    lastPacketReceivedTimestamp?: number;
    headerBytesReceived?: number;
    packetsDiscarded?: number;
    fecPacketsReceived?: number;
    fecPacketsDiscarded?: number;
    bytesReceived?: number;
    nackCount?: number;
    firCount?: number;
    pliCount?: number;
    totalProcessingDelay?: number;
    estimatedPlayoutTimestamp?: number;
    jitterBufferDelay?: number;
    jitterBufferTargetDelay?: number;
    jitterBufferEmittedCount?: number;
    jitterBufferMinimumDelay?: number;
    totalSamplesReceived?: number;
    concealedSamples?: number;
    silentConcealedSamples?: number;
    concealmentEvents?: number;
    insertedSamplesForDeceleration?: number;
    removedSamplesForAcceleration?: number;
    audioLevel?: number;
    totalAudioEnergy?: number;
    totalSamplesDuration?: number;
    framesReceived?: number;
    decoderImplementation?: string;
    playoutId?: string;
    receiverId?: string;
}
export interface RtcRemoteInboundRtpStreamStats extends RtcReceivedRtpStreamStats {
    localId?: string;
    roundTripTime?: number;
    totalRoundTripTime?: number;
    fractionLost?: number;
    roundTripTimeMeasurements?: number;
}
export interface RtcSentRtpStreamStats extends RtcRtpStreamStats {
    packetsSent?: number;
    bytesSent?: number;
}
export type RtcQualityLimitationReason = "none" | "cpu" | "bandwidth" | "other";
export type RtcQualityLimitationDurations = {
    none?: number;
    cpu?: number;
    bandwidth?: number;
    other?: number;
};
export interface RtcOutboundRTPStreamStats extends RtcSentRtpStreamStats {
    mid?: string;
    mediaSourceId?: string;
    remoteId?: string;
    rid?: string;
    headerBytesSent?: number;
    retransmittedPacketsSent?: number;
    retransmittedBytesSent?: number;
    targetBitrate?: number;
    totalEncodedBytesTarget?: number;
    frameWidth?: number;
    frameHeight?: number;
    framesPerSecond?: number;
    framesSent?: number;
    hugeFramesSent?: number;
    framesEncoded?: number;
    keyFramesEncoded?: number;
    qpSum?: number;
    totalEncodeTime?: number;
    totalPacketSendDelay?: number;
    averageRtcpInterval?: number;
    qualityLimitationReason?: RtcQualityLimitationReason;
    qualityLimitationDurations?: RtcQualityLimitationDurations;
    qualityLimitationResolutionChanges?: number;
    nackCount?: number;
    firCount?: number;
    pliCount?: number;
    encoderImplementation?: string;
    active?: boolean;
    senderId?: string;
}
export interface RtcRemoteOutboundRTPStreamStats extends RtcSentRtpStreamStats {
    localId?: string;
    remoteTimestamp?: number;
    reportsSent?: number;
    roundTripTime?: number;
    totalRoundTripTime?: number;
    roundTripTimeMeasurements?: number;
}
export interface RtcMediaSourceStats extends RtcStats {
    trackIdentifier: string;
    kind: RtcMediaKind;
    relayedSource?: boolean;
}
export interface RtcAudioSourceStats extends RtcMediaHandlerStats {
    audioLevel?: number;
    totalAudioEnergy?: number;
    totalSamplesDuration?: number;
    echoReturnLoss?: number;
    echoReturnLossEnhancement?: number;
    droppedSamplesDuration?: number;
    droppedSamplesEvents?: number;
    totalCaptureDelay?: number;
    totalSamplesCaptured?: number;
}
export interface RtcVideoSourceStats extends RtcMediaSourceStats {
    width?: number;
    height?: number;
    frames?: number;
    framesPerSecond?: number;
}
export interface RtcRtpContributingSourceStats extends RtcStats {
    contributorSsrc: number;
    inboundRtpStreamId: string;
    packetsContributedTo?: number;
    audioLevel?: number;
}
export interface RtcPeerConnectionStats extends RtcStats {
    dataChannelsOpened?: number;
    dataChannelsClosed?: number;
}
export interface RtcRtpTransceiverStats extends RtcStats {
    senderId: string;
    receiverId: string;
    mid?: string;
}
export interface RtcMediaHandlerStats extends RtcStats {
    trackIdentifier?: string;
    ended?: boolean;
    kind: RtcMediaKind;
}
export interface RtcVideoHandlerStats extends RtcMediaHandlerStats {
}
export interface RtcVideoSenderStats extends RtcVideoHandlerStats {
    mediaSourceId?: string;
}
export interface RtcVideoReceiverStats extends RtcVideoHandlerStats {
}
export interface RtcAudioHandlerStats extends RtcMediaHandlerStats {
}
export interface RtcAudioSenderStats extends RtcAudioHandlerStats {
    mediaSourceId?: string;
}
export interface RtcAudioReceiverStats extends RtcAudioHandlerStats {
}
export interface RTCAudioPlayoutStats extends RtcStats {
    synthesizedSamplesDuration?: number;
    synthesizedSamplesEvents?: number;
    totalSamplesDuration?: number;
    totalPlayoutDelay?: number;
    totalSamplesCount?: number;
}
export type RtcDataChannelState = "connecting" | "open" | "closing" | "closed";
export interface RtcDataChannelStats extends RtcStats {
    label?: string;
    protocol?: string;
    dataChannelIdentifier?: number;
    state: RtcDataChannelState;
    messagesSent?: number;
    bytesSent?: number;
    messagesReceived?: number;
    bytesReceived?: number;
}
export type RtcIceRole = "unknown" | "controlling" | "controlled";
export type RtcDtlsTransportState = "closed" | "connected" | "connecting" | "failed" | "new";
export type RtcIceTransportState = "closed" | "connected" | "failed" | "new" | "checking" | "completed" | "disconnected";
export type RtcDtlsRole = "client" | "server" | "unknown";
export interface RtcTransportStats extends RtcStats {
    packetsSent?: number;
    packetsReceived?: number;
    bytesSent?: number;
    bytesReceived?: number;
    iceRole?: RtcIceRole;
    iceLocalUsernameFragment?: string;
    dtlsState: RtcDtlsTransportState;
    iceState?: RtcIceTransportState;
    selectedCandidatePairId?: string;
    localCertificateId?: string;
    remoteCertificateId?: string;
    tlsVersion?: string;
    dtlsCipher?: string;
    dtlsRole?: RtcDtlsRole;
    srtpCipher?: string;
    selectedCandidatePairChanges?: number;
    rtcpTransportStatsId?: string;
}
export interface RtcSctpTransportStats extends RtcStats {
    transportId?: string;
    smoothedRoundTripTime?: number;
    congestionWindow?: number;
    receiverWindow?: number;
    mtu?: number;
    unackData?: number;
}
export type RtcIceCandidateType = "host" | "prflx" | "relay" | "srflx";
export type RtcTransportProtocol = "udp" | "tcp";
export type RtcRelayProtocol = "udp" | "tcp" | "tls";
export interface RtcIceCandidateStats extends RtcStats {
    transportId: string;
    address?: string;
    port?: number;
    protocol?: RtcTransportProtocol;
    candidateType: RtcIceCandidateType;
    priority?: number;
    url?: string;
    relayProtocol?: RtcRelayProtocol;
}
export type RtcStatsIceCandidatePairState = "failed" | "cancelled" | "frozen" | "inprogress" | "succeeded" | "waiting";
export interface RtcIceCandidatePairStats extends RtcStats {
    transportId: string;
    localCandidateId: string;
    remoteCandidateId: string;
    state: RtcStatsIceCandidatePairState;
    nominated?: boolean;
    packetsSent?: number;
    packetsReceived?: number;
    bytesSent?: number;
    bytesReceived?: number;
    lastPacketSentTimestamp?: number;
    lastPacketReceivedTimestamp?: number;
    totalRoundTripTime?: number;
    currentRoundTripTime?: number;
    availableOutgoingBitrate?: number;
    availableIncomingBitrate?: number;
    requestsReceived?: number;
    requestsSent?: number;
    responsesReceived?: number;
    responsesSent?: number;
    consentRequestsSent?: number;
    packetsDiscardedOnSend?: number;
    bytesDiscardedOnSend?: number;
}
export interface RtcCertificateStats extends RtcStats {
    fingerprint: string;
    fingerprintAlgorithm: string;
    base64Certificate: string;
    issuerCertificateId?: string;
}
export interface RtcIceServerStats extends RtcStats {
    url: string;
    port?: number;
    relayProtocol?: RtcRelayProtocol;
    totalRequestsSent?: number;
    totalResponsesReceived?: number;
    totalRoundTripTime?: number;
}
export {};
//# sourceMappingURL=W3cStatsIdentifiers.d.ts.map