/// import { NotificationStrings } from './Notification'; /** * Props for {@link NotificationStack}. * @public */ export interface NotificationStackProps { /** * Strings shown on the UI on errors. */ strings?: NotificationStackStrings; /** * Currently active notifications. */ activeNotifications: ActiveNotification[]; /** * Max notifications to show at a time. * @defaultValue 2 */ maxNotificationsToShow?: number; /** * Callback called when the dismiss button is triggered. * Use this to control notifications shown when they dismissed by the user. * Note this onDismiss function will affect all notifications in the same stack */ onDismissNotification?: (dismissedNotification: ActiveNotification) => void; /** * If set, notifications with {@link ActiveNotification.timestamp} older than the time this component is mounted * are not shown. * * This is useful when using the {@link NotificationStack} with a stateful client that handles more than one call * or chat thread. Set this prop to ignore notifications from previous call or chat. * * @defaultValue false */ ignorePremountNotifications?: boolean; } /** * All strings that may be shown on the UI in the {@link NotificationStack}. * * @public */ export interface NotificationStackStrings { /** * A generic message when starting video fails. */ startVideoGeneric?: NotificationStrings; /** * A generic message when starting video fails. */ stopVideoGeneric?: NotificationStrings; /** * A generic message when muting microphone fails. */ muteGeneric?: NotificationStrings; /** * A generic message when unmuting microphone fails. */ unmuteGeneric?: NotificationStrings; /** * A generic message when starting screenshare fails. */ startScreenShareGeneric?: NotificationStrings; /** * A generic message when stopping screenshare fails. */ stopScreenShareGeneric?: NotificationStrings; /** * Message shown when poor network quality is detected during a call. */ callNetworkQualityLow?: NotificationStrings; /** * Message shown when poor network quality is detected during a teams meetings. * Contains actions to open phone info modal. */ teamsMeetingCallNetworkQualityLow?: NotificationStrings; /** * Message shown on failure to detect audio output devices. */ callNoSpeakerFound?: NotificationStrings; /** * Message shown on failure to detect audio input devices. */ callNoMicrophoneFound?: NotificationStrings; /** * Message shown when microphone can be enumerated but access is blocked by the system. */ callMicrophoneAccessDenied?: NotificationStrings; /** * Message shown when microphone can be enumerated but access is blocked by the system, for safari browsers */ callMicrophoneAccessDeniedSafari?: NotificationStrings; /** * Message shown when microphone is muted by the system (not by local or remote participants) */ callMicrophoneMutedBySystem?: NotificationStrings; /** * Message shown when microphone is unmuted by the system (not by local or remote participants). * This typically occurs if the system recovers from an unexpected mute. */ callMicrophoneUnmutedBySystem?: NotificationStrings; /** * Mac OS specific message shown when microphone can be enumerated but access is * blocked by the system. */ callMacOsMicrophoneAccessDenied?: NotificationStrings; /** * Message shown when poor network causes local video stream to be frozen. */ callLocalVideoFreeze?: NotificationStrings; /** * Message shown when camera can be enumerated but access is blocked by the system. */ callCameraAccessDenied?: NotificationStrings; /** * Message shown when camera can be enumerated but access is blocked by the system, for safari browsers */ callCameraAccessDeniedSafari?: NotificationStrings; /** * Message shown when local video fails to start because camera is already in use by * another applciation. */ callCameraAlreadyInUse?: NotificationStrings; /** * Message shown when local video is stopped by the system (not by local or remote participants) */ callVideoStoppedBySystem?: NotificationStrings; /** * Message shown when local video was recovered by the system (not by the local participant) */ callVideoRecoveredBySystem?: NotificationStrings; /** * Mac OS specific message shown when system denies access to camera. */ callMacOsCameraAccessDenied?: NotificationStrings; /** * Mac OS specific message shown when system denies sharing local screen on a call. */ callMacOsScreenShareAccessDenied?: NotificationStrings; /** * Dimiss Notifications button aria label read by screen reader accessibility tools */ dismissButtonAriaLabel?: NotificationStrings; /** * An error message when joining a call fails. */ failedToJoinCallGeneric?: NotificationStrings; /** * An error message when joining a call fails specifically due to an invalid meeting link. */ failedToJoinCallInvalidMeetingLink?: NotificationStrings; /** * Error string letting you know remote participants see a frozen stream for you. */ cameraFrozenForRemoteParticipants?: NotificationStrings; /** * Unable to start effect */ unableToStartVideoEffect?: NotificationStrings; /** * An error message when starting spotlight while max participants are spotlighted */ startSpotlightWhileMaxParticipantsAreSpotlighted?: NotificationStrings; /** * Muted by a remote participant message */ mutedByRemoteParticipant?: NotificationStrings; /** * Speaking while muted message */ speakingWhileMuted?: NotificationStrings; /** * Recording started message */ recordingStarted?: NotificationStrings; /** * Transcription started message */ transcriptionStarted?: NotificationStrings; /** * Recording stopped message */ recordingStopped?: NotificationStrings; /** * Transcription stopped message */ transcriptionStopped?: NotificationStrings; /** * Recording and transcription both started message */ recordingAndTranscriptionStarted?: NotificationStrings; /** * Recording and transcription both stopped message */ recordingAndTranscriptionStopped?: NotificationStrings; /** * Recording stopped but transcription still going on message */ recordingStoppedStillTranscribing?: NotificationStrings; /** * Transcription stopped but recording still going on message */ transcriptionStoppedStillRecording?: NotificationStrings; /** * Message shown in notification when the user will be automatically to their assigned breakout room that is opened */ assignedBreakoutRoomOpened?: NotificationStrings; /** * Message shown in notification when the user is prompted to join their assigned breakout room that is opened */ assignedBreakoutRoomOpenedPromptJoin?: NotificationStrings; /** * Message shown in notification when the user's assigned breakout room is changed */ assignedBreakoutRoomChanged?: NotificationStrings; /** * Message shown in notification when the user's assigned breakout room is closed */ assignedBreakoutRoomClosed?: NotificationStrings; /** * Message shown in notification when breakout room is joined */ breakoutRoomJoined?: NotificationStrings; /** * Message shown in notification when breakout room is closing soon */ breakoutRoomClosingSoon?: NotificationStrings; /** * Message shown in notification when capability turnVideoOn is present */ capabilityTurnVideoOnPresent?: NotificationStrings; /** * Message shown in notification when capability turnVideoOn is absent */ capabilityTurnVideoOnAbsent?: NotificationStrings; /** * Message shown in notification when capability unMuteMic is present */ capabilityUnmuteMicPresent?: NotificationStrings; /** * Message shown in notification when capability unMuteMic is absent */ capabilityUnmuteMicAbsent?: NotificationStrings; /** * Message shown in notification when together mode is started */ togetherModeStarted?: NotificationStrings; /** * Message shown in notification when together mode ends */ togetherModeEnded?: NotificationStrings; /** * Message shown in notification when there was an error with transcription. */ transcriptionError?: NotificationStrings; /** * Message shown when the local user starts transcription */ transcriptionStartedByYou?: NotificationStrings; } /** * All notifications that can be shown in the {@link NotificationStack}. * * @public */ export type NotificationType = keyof NotificationStackStrings; /** * Active notifications to be shown via {@link NotificationStack}. * * @public */ export interface ActiveNotification { /** * Type of error that is active. */ type: NotificationType; /** * Callback called when the primary button inside notification bar is clicked. */ onClickPrimaryButton?: () => void; /** * Callback called when the primary button inside notification bar is clicked. */ onClickSecondaryButton?: () => void; /** * Callback called when the notification is dismissed. */ onDismiss?: () => void; /** * If set, notification will automatically dismiss after 5 seconds */ autoDismiss?: boolean; /** * The latest timestamp when this notification was observed. * * When available, this is used to track notifications that have already been seen and dismissed * by the user. */ timestamp?: Date; /** * Aria-live property for the notification. * @defaultValue polite */ ariaLive?: 'assertive' | 'off' | 'polite'; } /** * A component to show notifications on the UI. * All strings that can be shown are accepted as the {@link NotificationStackProps.strings} so that they can be localized. * Active notifications are selected by {@link NotificationStackProps.activeNotifications}. * * This component internally tracks dismissed by the user. * * Notifications that have an associated timestamp: The notification is shown on the UI again if it occurs after being dismissed. * * Notifications that do not have a timestamp: The notification is dismissed until it disappears from the props. * If the notification recurs, it is shown in the UI. * * * @public */ export declare const NotificationStack: (props: NotificationStackProps) => JSX.Element; //# sourceMappingURL=NotificationStack.d.ts.map