export interface OutboundVideoStats { /** The outbound-rtp stat's id, for matching other stats about the same stream. */ id: string; ssrc: number | null; /** The sent track, read off the media-source stat. Null when the report does not say. */ trackId: string | null; label: "camera" | "screen"; codec: string | null; frameWidth: number | null; frameHeight: number | null; framesPerSecond: number | null; bitrateKbps: number | null; packetsSent: number | null; qualityLimitationReason: string | null; scalabilityMode: string | null; encoderImplementation: string | null; totalEncodeTimeMs: number | null; framesEncoded: number | null; keyFramesEncoded: number | null; pliCount: number | null; nackCount: number | null; } export interface InboundVideoStats { trackId: string; codec: string | null; frameWidth: number | null; frameHeight: number | null; framesPerSecond: number | null; bitrateKbps: number | null; jitterMs: number | null; packetsReceived: number | null; packetsLost: number | null; framesDecoded: number | null; framesDropped: number | null; decoderImplementation: string | null; pliCount: number | null; firCount: number | null; nackCount: number | null; } export interface ConnectionStats { rttMs: number | null; availableOutKbps: number | null; candidateType: string | null; transportProtocol: string | null; } export interface VideoStatsBreakdown { outbound: OutboundVideoStats[]; inbound: InboundVideoStats[]; connection: ConnectionStats; } export declare function useVideoStats(enabled: boolean): VideoStatsBreakdown;