@azure/communication-react
Version:
React library for building modern communication user experiences utilizing Azure Communication Services
163 lines • 7.5 kB
TypeScript
/// <reference types="react" />
import { CallAdapterState, CallCompositePage, StartCallIdentifier } from '../adapter/CallAdapter';
import { CallControlOptions } from '../types/CallControlOptions';
import { CallState, RemoteParticipantState } from "../../../../../calling-stateful-client/src";
import { AdapterStateModifier, CallAdapterLocator } from '../adapter/AzureCommunicationCallAdapter';
import { VideoBackgroundEffectsDependency } from "../../../../../calling-component-bindings/src";
import { VideoBackgroundEffect } from '../adapter/CallAdapter';
import { EnvironmentInfo, VideoDeviceInfo } from '@azure/communication-calling';
import { VideoEffectProcessor } from '@azure/communication-calling';
import { CompositeLocale } from '../../localization';
import { CallCompositeIcons } from '../../common/icons';
import { ActiveNotification } from "../../../../../react-components/src";
/** @private */
export declare const ROOM_NOT_FOUND_SUB_CODE = 5732;
/** @private */
export declare const ROOM_NOT_VALID_SUB_CODE = 5829;
/** @private */
export declare const NOT_INVITED_TO_ROOM_SUB_CODE = 5828;
/** @private */
export declare const INVITE_TO_ROOM_REMOVED_SUB_CODE = 5317;
/** @private */
export declare const CALL_TIMEOUT_SUB_CODE = 10004;
/** @private */
export declare const CALL_TIMEOUT_CODE = 487;
/** @private */
export declare const BOT_TIMEOUT_CODE = 486;
/** @private */
export declare const BOT_TIMEOUT_SUB_CODE = 10321;
/**
* @private
*/
export declare const isCameraOn: (state: CallAdapterState) => boolean;
/**
* Reduce the set of call controls visible on mobile.
* For example do not show screenshare button.
*
* @private
*/
export declare const reduceCallControlsForMobile: (callControlOptions: CallControlOptions | boolean | undefined) => CallControlOptions | false;
/**
* Helper function for determine strings and icons for end call page
* @private
*/
export declare const getEndedCallPageProps: (locale: CompositeLocale, endedCall?: CallState) => {
title: string;
moreDetails?: string;
disableStartCallButton: boolean;
iconName: keyof CallCompositeIcons;
};
/**
* type definition for conditional-compilation
*/
type GetCallCompositePageFunction = ((call: CallState | undefined, previousCall: CallState | undefined) => CallCompositePage) & ((call: CallState | undefined, previousCall: CallState | undefined, transferCall?: CallState, isReturningFromBreakoutRoom?: boolean) => CallCompositePage);
/**
* Get the current call composite page based on the current call composite state
*
* @param Call - The current call state
* @param previousCall - The state of the most recent previous call that has ended.
*
* @remarks - The previousCall state is needed to determine if the call has ended.
* When the call ends a new call object is created, and so we must lookback at the
* previous call state to understand how the call has ended. If there is no previous
* call we know that this is a fresh call and can display the configuration page.
*
* @private
*/
export declare const getCallCompositePage: GetCallCompositePageFunction;
/** @private */
export declare const IsCallEndedPage: (page: CallCompositePage) => boolean;
/**
* Creates a new call control options object and sets the correct values for disabling
* the buttons provided in the `disabledControls` array.
* Returns a new object without changing the original object.
* @param callControlOptions options for the call control component that need to be modified.
* @param disabledControls An array of controls to disable.
* @returns a copy of callControlOptions with disabledControls disabled
* @private
*/
export declare const disableCallControls: (callControlOptions: CallControlOptions | boolean | undefined, disabledControls: (keyof CallControlOptions)[]) => CallControlOptions | boolean | undefined;
/**
* Check if a disabled object is provided for a button and returns if the button is disabled.
* A button is only disabled if is explicitly set to disabled.
*
* @param option
* @returns whether a button is disabled
* @private
*/
export declare const isDisabled: (option: boolean | {
disabled: boolean;
} | undefined) => boolean;
/**
* Check if we are using safari browser
* @private
*/
export declare const _isSafari: (environmentInfo: undefined | EnvironmentInfo) => boolean;
/**
* @private
* This is the util function to create a participant modifier for remote participantList
* It memoize previous original participant items and only update the changed participant
* It takes in one modifier function to generate one single participant object, it returns undefined if the object keeps unmodified
*/
export declare const createParticipantModifier: (createModifiedParticipant: (id: string, participant: RemoteParticipantState) => RemoteParticipantState | undefined) => AdapterStateModifier;
/** @private */
export declare const getBackgroundEffectFromSelectedEffect: (selectedEffect: VideoBackgroundEffect | undefined, VideoBackgroundEffectsDependency: VideoBackgroundEffectsDependency) => VideoEffectProcessor | undefined;
/**
* @remarks this logic should mimic the onToggleCamera in the common call handlers.
* @private
*/
export declare const getSelectedCameraFromAdapterState: (state: CallAdapterState) => VideoDeviceInfo | undefined;
/**
* Helper to determine if the adapter has a locator or targetCallees
* @param locatorOrTargetCallees
* @returns boolean to determine if the adapter has a locator or targetCallees, true is locator, false is targetCallees
* @private
*/
export declare const getLocatorOrTargetCallees: (locatorOrTargetCallees: CallAdapterLocator | StartCallIdentifier[]) => locatorOrTargetCallees is import("@azure/communication-common").CommunicationIdentifier[];
/**
* @private
*/
export type ComplianceState = 'on' | 'off' | 'stopped';
/**
* Return different conditions based on the current and previous state of recording and transcribing
*
* @param callRecordState - The current call record state: on, off, stopped
* @param callTranscribeState - The current call transcribe state: on, off, stopped
*
* @remarks - The stopped state means: previously on but currently off
*
* @private
*/
export declare const computeVariant: (callRecordState: ComplianceState, callTranscribeState: ComplianceState) => ComplianceNotificationVariant;
/**
* @private
*/
export type ComplianceNotificationVariant = 'noState' | 'recordingStarted' | 'transcriptionStarted' | 'recordingStopped' | 'transcriptionStopped' | 'recordingAndTranscriptionStarted' | 'recordingAndTranscriptionStopped' | 'recordingStoppedStillTranscribing' | 'transcriptionStoppedStillRecording';
/**
* @private
*/
export type CachedComplianceNotificationProps = {
latestBooleanState: {
callTranscribeState?: boolean;
callRecordState?: boolean;
};
latestStringState: {
callTranscribeState: ComplianceState;
callRecordState: ComplianceState;
};
lastUpdated: number;
};
/**
* @private
*/
export declare function determineStates(previous: ComplianceState, current: boolean | undefined): ComplianceState;
/**
* Compute compliance notification based on latest compliance state and cached props.
* @private
*/
export declare function computeComplianceNotification(complianceProps: {
callTranscribeState: boolean;
callRecordState: boolean;
}, cachedProps: React.MutableRefObject<CachedComplianceNotificationProps>): ActiveNotification | undefined;
export {};
//# sourceMappingURL=Utils.d.ts.map