Action: Immutable<{ type: "INVITATION_REMOVED"; userId: string; } | { type: "INVITATION"; userId: string; } | { muted: boolean; type: "MUTE_CHANGE"; userId: string; } | { status: "GONE" | "HOLD" | "IN_CALL"; type: "PARTICIPANT_CHANGE"; userId: string; } | { isTalking: boolean; type: "SPEAKER_CHANGE"; userId: string; } | { isLocal: boolean; mediaTypes: MediaTypes; stream: MediaStream; type: "STREAM_ADDED"; userId: string; } | { stream: MediaStream; type: "STREAM_REMOVED"; userId: string; }>