@agatx/serenada-core
    Preparing search index...

    Interface Participant

    Remote participant in a call.

    interface Participant {
        audioEnabled: boolean;
        cameraEnabled: boolean;
        cameraReceiving: boolean;
        cid: string;
        connectionState: PeerConnectionState;
        content?: ParticipantContent;
        contentReceiving: boolean;
        displayName?: string;
        peerId?: string;
        presumedLost: boolean;
        signalingStatus: ParticipantSignalingStatus;
        videoEnabled: boolean;
    }
    Index

    Properties

    audioEnabled: boolean
    cameraEnabled: boolean

    Whether the participant's camera video specifically is enabled. Precise camera signal distinct from videoEnabled (which carries the legacy "any video active" meaning for older callers). Currently mirrors videoEnabled; independent screen-share state is carried by content.

    cameraReceiving: boolean

    Per-role inbound media liveness, sampled from this peer's inbound RTP. cameraReceiving is true while the peer's CAMERA video bytes are advancing; contentReceiving is true while its CONTENT (screen share) video bytes are advancing. Each is only meaningful when that role's track is expected/active — derive a stall as content?.active && !contentReceiving (and analogously for the camera). Drives the per-role stall diagnostics so a consumer can tell a frozen screen share apart from a healthy camera, and which peer (cid) it is.

    Flag off / legacy peers: the single inbound video routes to the camera role, so cameraReceiving tracks that one video and contentReceiving stays false. Both default to false before the first liveness sample. Audio liveness is not split here (it stays in the global media_liveness signal). Additive: existing fields are unchanged.

    cid: string
    connectionState: PeerConnectionState

    Active content (screen share) presentation state, or absent when the participant is not currently sharing content. Driven by received content_state.

    contentReceiving: boolean
    displayName?: string
    peerId?: string

    Host-supplied stable identity passed via SerenadaCore.join (the peerId option). Distinct from cid (per-call, server-issued) — used by the call UI to look up avatars or correlate to host-side records. Absent when the remote peer didn't supply one.

    presumedLost: boolean

    true when this peer has been suspended longer than PEER_SUSPENDED_UI_TIMEOUT_MS and the SDK has flipped its UI presentation to "presumed lost." The peer connection is intentionally left open so media can resume immediately if the peer reattaches; this flag is purely a UI hint that call shells can use to move the participant out of the active grid or show a "connection lost" badge. Cleared when the peer transitions back to signalingStatus="active".

    signalingStatus: ParticipantSignalingStatus
    videoEnabled: boolean