@azure/communication-react
Version:
React library for building modern communication user experiences utilizing Azure Communication Services
136 lines • 6.55 kB
TypeScript
import { AddPhoneNumberOptions, AudioDeviceInfo, AudioEffectsStartConfig, BackgroundBlurConfig, BackgroundBlurEffect, BackgroundReplacementConfig, BackgroundReplacementEffect, Call, CallSurvey, CallSurveyResponse, DtmfTone, LocalVideoStream, StartCallOptions, TeamsCall, VideoDeviceInfo } from '@azure/communication-calling';
import { StatefulCallClient, StatefulDeviceManager } from "../../../calling-stateful-client/src";
import { CreateVideoStreamViewResult, VideoStreamOptions, CaptionsOptions } from "../../../react-components/src";
import { CommunicationUserIdentifier, PhoneNumberIdentifier } from '@azure/communication-common';
import { CommunicationIdentifier } from '@azure/communication-common';
import { Reaction } from '@azure/communication-calling';
import { _ComponentCallingHandlers } from './createHandlers';
/**
* Object containing all the handlers required for calling components.
*
* Calling related components from this package are able to pick out relevant handlers from this object.
* See {@link useHandlers} and {@link usePropsFor}.
*
* @public
*/
export interface CommonCallingHandlers {
onStartLocalVideo: () => Promise<void>;
onToggleCamera: (options?: VideoStreamOptions) => Promise<void>;
onSelectMicrophone: (device: AudioDeviceInfo) => Promise<void>;
onSelectSpeaker: (device: AudioDeviceInfo) => Promise<void>;
onSelectCamera: (device: VideoDeviceInfo, options?: VideoStreamOptions) => Promise<void>;
onToggleMicrophone: () => Promise<void>;
onStartScreenShare: () => Promise<void>;
onStopScreenShare: () => Promise<void>;
onToggleScreenShare: () => Promise<void>;
onHangUp: (forEveryone?: boolean) => Promise<void>;
onRaiseHand: () => Promise<void>;
onLowerHand: () => Promise<void>;
onToggleRaiseHand: () => Promise<void>;
onReactionClick: (reaction: Reaction) => Promise<void>;
onToggleHold: () => Promise<void>;
onAddParticipant(participant: CommunicationUserIdentifier): Promise<void>;
onAddParticipant(participant: PhoneNumberIdentifier, options: AddPhoneNumberOptions): Promise<void>;
onCreateLocalStreamView: (options?: VideoStreamOptions) => Promise<void | CreateVideoStreamViewResult>;
onCreateRemoteStreamView: (userId: string, options?: VideoStreamOptions) => Promise<void | CreateVideoStreamViewResult>;
/**
* @deprecated use {@link onDisposeRemoteVideoStreamView} and {@link onDisposeRemoteScreenShareStreamView} instead.
*/
onDisposeRemoteStreamView: (userId: string) => Promise<void>;
onDisposeLocalStreamView: () => Promise<void>;
onDisposeRemoteVideoStreamView: (userId: string) => Promise<void>;
onDisposeRemoteScreenShareStreamView: (userId: string) => Promise<void>;
onDisposeLocalScreenShareStreamView: () => Promise<void>;
onSendDtmfTone: (dtmfTone: DtmfTone) => Promise<void>;
onRemoveParticipant(userId: string): Promise<void>;
onRemoveParticipant(participant: CommunicationIdentifier): Promise<void>;
onStartCall: (participants: CommunicationIdentifier[], options?: StartCallOptions) => void;
onAcceptCall: (incomingCallId: string, useVideo?: boolean) => Promise<void>;
onRejectCall: (incomingCallId: string) => Promise<void>;
onRemoveVideoBackgroundEffects: () => Promise<void>;
onBlurVideoBackground: (backgroundBlurConfig?: BackgroundBlurConfig) => Promise<void>;
onReplaceVideoBackground: (backgroundReplacementConfig: BackgroundReplacementConfig) => Promise<void>;
onStartNoiseSuppressionEffect: () => Promise<void>;
onStopNoiseSuppressionEffect: () => Promise<void>;
onStartCaptions: (options?: CaptionsOptions) => Promise<void>;
onStopCaptions: () => Promise<void>;
onSetSpokenLanguage: (language: string) => Promise<void>;
onSetCaptionLanguage: (language: string) => Promise<void>;
onSubmitSurvey(survey: CallSurvey): Promise<CallSurveyResponse | undefined>;
onStartSpotlight: (userIds?: string[]) => Promise<void>;
onStopSpotlight: (userIds?: string[]) => Promise<void>;
onStopAllSpotlight: () => Promise<void>;
onMuteParticipant: (userId: string) => Promise<void>;
onMuteAllRemoteParticipants: () => Promise<void>;
/**
* Forbid remote participants from sending audio
*
*/
onForbidAudio?: (userIds: string[]) => Promise<void>;
/**
* Permit remote participants to send audio
*
*/
onPermitAudio?: (userIds: string[]) => Promise<void>;
/**
* Change meeting option forbid remote participants from sending audio
*
*/
onForbidOthersAudio?: () => Promise<void>;
/**
* Change meeting option permit remote participants to send audio
*
*/
onPermitOthersAudio?: () => Promise<void>;
/**
* Forbid remote participants from sending video
*
*/
onForbidVideo?: (userIds: string[]) => Promise<void>;
/**
* Permit remote participants to send video
*
*/
onPermitVideo?: (userIds: string[]) => Promise<void>;
/**
* Change meeting option forbid remote participants from sending video
*
*/
onForbidOthersVideo?: () => Promise<void>;
/**
* Change meeting option permit remote participants to send video
*
*/
onPermitOthersVideo?: () => Promise<void>;
}
/**
* @private
*/
export declare const areStreamsEqual: (prevStream: LocalVideoStream, newStream: LocalVideoStream) => boolean;
/**
* Dependency type to be injected for video background effects
*
* @public
*/
export type VideoBackgroundEffectsDependency = {
createBackgroundBlurEffect: (config?: BackgroundBlurConfig) => BackgroundBlurEffect;
createBackgroundReplacementEffect: (config: BackgroundReplacementConfig) => BackgroundReplacementEffect;
};
/**
* Dependency type to be injected for deep noise suppression
*
* @public
*/
export type DeepNoiseSuppressionEffectDependency = {
deepNoiseSuppressionEffect: AudioEffectsStartConfig;
};
/**
* Create the common implementation of {@link CallingHandlers} for all types of Call
*
* @private
*/
export declare const createDefaultCommonCallingHandlers: (callClient: StatefulCallClient, deviceManager: StatefulDeviceManager | undefined, call: Call | TeamsCall | undefined, options?: {
onResolveVideoBackgroundEffectsDependency?: () => Promise<VideoBackgroundEffectsDependency>;
onResolveDeepNoiseSuppressionDependency?: () => Promise<DeepNoiseSuppressionEffectDependency>;
}) => CommonCallingHandlers & Partial<_ComponentCallingHandlers>;
//# sourceMappingURL=createCommonHandlers.d.ts.map