import type { ParticipantPermission } from '@livekit/protocol'; import { Participant, RemoteParticipant, Room, TrackPublication } from 'livekit-client'; import { ParticipantEvent, RoomEvent } from 'livekit-client'; import type { ParticipantEventCallbacks } from 'livekit-client/dist/src/room/participant/Participant'; import { Observable } from 'rxjs'; import type { TrackReferenceOrPlaceholder } from '../track-reference'; import type { ParticipantIdentifier, TrackIdentifier } from '../types'; export declare function observeParticipantEvents(participant: T, ...events: ParticipantEvent[]): Observable; export interface ParticipantMedia { isCameraEnabled: boolean; isMicrophoneEnabled: boolean; isScreenShareEnabled: boolean; microphoneTrack?: TrackPublication; cameraTrack?: TrackPublication; participant: T; } export declare function observeParticipantMedia(participant: T): Observable>; export declare function createTrackObserver(participant: Participant, options: TrackIdentifier): Observable<{ publication: TrackPublication | undefined; }>; export declare function participantInfoObserver(participant?: Participant): Observable<{ name: string | undefined; identity: string; metadata: string | undefined; } | { name: string | undefined; identity: string; metadata: string | undefined; }> | undefined; export declare function createConnectionQualityObserver(participant: Participant): Observable; export declare function participantEventSelector(participant: Participant, event: T): Observable]>>; export declare function mutedObserver(trackRef: TrackReferenceOrPlaceholder): Observable; export declare function createIsSpeakingObserver(participant: Participant): Observable; type ConnectedParticipantsObserverOptions = { additionalRoomEvents?: RoomEvent[]; }; export declare function connectedParticipantsObserver(room: Room, options?: ConnectedParticipantsObserverOptions): Observable; export type ConnectedParticipantObserverOptions = { additionalEvents?: ParticipantEvent[]; }; export declare function connectedParticipantObserver(room: Room, identity: string, options?: ConnectedParticipantObserverOptions): Observable; export declare function participantPermissionObserver(participant: Participant): Observable; export declare function participantByIdentifierObserver(room: Room, { kind, identity }: ParticipantIdentifier, options?: ConnectedParticipantObserverOptions): Observable; export declare function participantAttributesObserver(participant: Participant): Observable<{ changed: Readonly>; attributes: Readonly>; }>; export declare function participantAttributesObserver(participant: undefined): Observable<{ changed: undefined; attributes: undefined; }>; export {}; //# sourceMappingURL=participant.d.ts.map