interface BaseStatsPayload {
    sequence_num: number;
    max_window_sec: number;
    joined_at: number;
    cpu_pressure_state?: string;
}
export interface PublishAnalyticPayload extends BaseStatsPayload {
    video: Array<LocalAudioTrackAnalytics>;
    audio: Array<LocalAudioTrackAnalytics>;
}
export interface SubscribeAnalyticPayload extends BaseStatsPayload {
    video: Array<RemoteVideoTrackAnalytics>;
    audio: Array<RemoteAudioTrackAnalytics>;
}
interface TrackAnalytics<Sample> {
    track_id: string;
    rid?: string;
    ssrc: string;
    source: string;
    samples: Array<Sample>;
}
export declare type LocalAudioTrackAnalytics = TrackAnalytics<LocalBaseSample>;
export declare type LocalVideoTrackAnalytics = TrackAnalytics<LocalVideoSample>;
export declare type RemoteAudioTrackAnalytics = TrackAnalytics<RemoteAudioSample>;
export declare type RemoteVideoTrackAnalytics = TrackAnalytics<RemoteVideoSample>;
export interface LocalBaseSample {
    timestamp: number;
    sample_start_ts?: number;
    sample_end_ts?: number;
    sample_duration_ms?: number;
    avg_round_trip_time_ms?: number;
    avg_jitter_ms?: number;
    total_packets_lost?: number;
    avg_bitrate_bps?: number;
    avg_available_outgoing_bitrate_bps?: number;
    total_packets_sent?: number;
    total_packet_sent_delay_sec?: number;
    total_nack_count?: number;
    total_fir_count?: number;
    total_pli_count?: number;
    cpu_pressure_state?: string;
    track_settings?: MediaTrackSettings;
    effects_metrics?: Record<string, Record<string, unknown> | undefined>;
}
export interface LocalVideoSample extends LocalBaseSample {
    total_quality_limitation?: QualityLimitation;
    avg_fps?: number;
    resolution?: Resolution;
    /**
     * Source/capture stats from media-source (pre-encoding).
     */
    source_resolution?: Resolution;
    source_avg_fps?: number;
    source_total_frames?: number;
    source_total_frames_dropped?: number;
}
export interface QualityLimitation {
    bandwith_sec?: number;
    cpu_sec?: number;
    other_sec?: number;
}
export interface Resolution {
    width_px?: number;
    height_px?: number;
}
interface RemoteBaseSample {
    timestamp: number;
    sample_start_ts?: number;
    sample_end_ts?: number;
    sample_duration_ms?: number;
    estimated_playout_timestamp?: number;
    avg_jitter_buffer_delay?: number;
    avg_bitrate_bps?: number;
}
export interface RemoteAudioSample extends RemoteBaseSample {
    audio_level?: number;
    audio_concealed_samples?: number;
    audio_total_samples_received?: number;
    audio_concealment_events?: number;
    fec_packets_discarded?: number;
    fec_packets_received?: number;
    total_samples_duration?: number;
    total_packets_received?: number;
    total_packets_lost?: number;
    jitter_buffer_delay_high_seconds?: number;
}
export interface RemoteVideoSample extends RemoteBaseSample {
    avg_frames_received_per_sec?: number;
    avg_frames_dropped_per_sec?: number;
    avg_frames_decoded_per_sec?: number;
    total_pli_count?: number;
    total_nack_count?: number;
    avg_av_sync_ms?: number;
    frame_width?: number;
    frame_height?: number;
    expected_frame_width?: number;
    expected_frame_height?: number;
    pause_count?: number;
    pause_duration_seconds?: number;
    freeze_count?: number;
    freeze_duration_seconds?: number;
}
export {};
