import { CallAdapterCallManagement , CallAdapterDeviceManagement , CallIdChangedListener , DisplayNameChangedListener , IsMutedChangedListener , IsLocalScreenSharingActiveChangedListener , IsSpeakingChangedListener , ParticipantsJoinedListener , ParticipantsLeftListener , CallEndedListener } from '../../CallComposite' ; import { ChatAdapterThreadManagement , MessageReadListener , MessageReceivedListener , MessageSentListener } from '../../ChatComposite' ; import { MeetingAdapterState } from '../state/MeetingAdapterState' ; import type { AdapterState , Disposable } from '../../common/adapters' ; import { Call } from '@azure/communication-calling' ; beta export interface MeetingAdapterMeetingManagement extends Pick < CallAdapterCallManagement , 'startCamera' | 'stopCamera' | 'mute' | 'unmute' | 'startScreenShare' | 'stopScreenShare' | 'createStreamView' | 'disposeStreamView' > , Pick < CallAdapterDeviceManagement , 'setCamera' | 'setMicrophone' | 'setSpeaker' | 'askDevicePermission' | 'queryCameras' | 'queryMicrophones' | 'querySpeakers' > , Pick < ChatAdapterThreadManagement , 'fetchInitialData' | 'sendMessage' | 'sendReadReceipt' | 'sendTypingIndicator' | 'loadPreviousChatMessages' | 'updateMessage' | 'deleteMessage' > { returns joinMeeting ( microphoneOn ? ) : Call | undefined ; /**
     * Leave the current Meeting
     */ leaveMeeting ( ) : Promise < void > ; param participants returns startMeeting ( participants ) : Call | undefined ; param userId removeParticipant ( userId ) : Promise < void > ; } beta export interface MeetingAdapterSubscriptions { on ( event , listener ) : void ; on ( event , listener ) : void ; on ( event , listener ) : void ; on ( event , listener ) : void ; off ( event , listener ) : void ; off ( event , listener ) : void ; off ( event , listener ) : void ; off ( event , listener ) : void ; on ( event , listener ) : void ; on ( event , listener ) : void ; on ( event , listener ) : void ; on ( event , listener ) : void ; on ( event , listener ) : void ; off ( event , listener ) : void ; off ( event , listener ) : void ; off ( event , listener ) : void ; off ( event , listener ) : void ; off ( event , listener ) : void ; on ( event , listener ) : void ; on ( event , listener ) : void ; on ( event , listener ) : void ; off ( event , listener ) : void ; off ( event , listener ) : void ; off ( event , listener ) : void ; } beta export interface MeetingAdapter extends MeetingAdapterMeetingManagement , AdapterState < MeetingAdapterState > , Disposable , MeetingAdapterSubscriptions { } beta export type MeetingEvent = 'participantsJoined' | 'participantsLeft' | 'meetingEnded' | 'isMutedChanged' | 'callIdChanged' | 'isLocalScreenSharingActiveChanged' | 'displayNameChanged' | 'isSpeakingChanged' | 'messageReceived' | 'messageSent' | 'messageRead' | 'error' ;