Skip to content

Latest commit

 

History

History
2787 lines (2458 loc) · 80.5 KB

File metadata and controls

2787 lines (2458 loc) · 80.5 KB

API Report File for "@internal/react-components"

Do not edit this file. It is a report generated by API Extractor.

/// <reference types="react" />

import { IButtonProps } from '@fluentui/react';
import { IButtonStyles } from '@fluentui/react';
import { IContextualMenuItem } from '@fluentui/react';
import { IContextualMenuItemStyles } from '@fluentui/react';
import { IContextualMenuProps } from '@fluentui/react';
import { IContextualMenuStyles } from '@fluentui/react';
import { IDropdownOption } from '@fluentui/react';
import { IDropdownStyles } from '@fluentui/react';
import { IIconProps } from '@fluentui/react';
import { ILinkStyles } from '@fluentui/react';
import { IMessageBarProps } from '@fluentui/react';
import { IModalProps } from '@fluentui/react';
import { IPersonaStyleProps } from '@fluentui/react';
import { IPersonaStyles } from '@fluentui/react';
import { IRawStyle } from '@fluentui/react';
import { IRenderFunction } from '@fluentui/react';
import { IStyle } from '@fluentui/react';
import { IStyleFunctionOrObject } from '@fluentui/react';
import { ITextFieldStyles } from '@fluentui/react';
import { ITheme } from '@fluentui/react';
import { ITooltipHostProps } from '@fluentui/react';
import { MessageStatus } from '@internal/acs-ui-common';
import { PartialTheme } from '@fluentui/react';
import { PersonaPresence } from '@fluentui/react';
import { PersonaSize } from '@fluentui/react';
import { PropsWithChildren } from 'react';
import { default as React_2 } from 'react';
import * as React_3 from 'react';
import { RefObject } from 'react';
import { Theme } from '@fluentui/react';

// @public
export interface ActiveErrorMessage {
    timestamp?: Date;
    type: ErrorType;
}

// @beta
export interface ActiveFileUpload {
    error?: SendBoxErrorBarError;
    filename: string;
    id: string;
    progress: number;
    uploadComplete?: boolean;
}

// Warning: (ae-internal-missing-underscore) The name "Announcer" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal
export const Announcer: (props: AnnouncerProps) => JSX.Element;

// Warning: (ae-internal-missing-underscore) The name "AnnouncerProps" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal
export type AnnouncerProps = {
    announcementString?: string;
    ariaLive: 'off' | 'polite' | 'assertive' | undefined;
};

// @beta
export interface AttachmentMetadata {
    // (undocumented)
    attachmentType: 'file';
    extension: string;
    id: string;
    name: string;
    // (undocumented)
    payload?: Record<string, string>;
    url: string;
}

// @internal
export type _AudioIssue = 'NoLocalAudio' | 'NoRemoteAudio' | 'Echo' | 'AudioNoise' | 'LowVolume' | 'AudioStoppedUnexpectedly' | 'DistortedSpeech' | 'AudioInterruption' | 'OtherIssues';

// @public
export interface BaseCustomStyles {
    root?: IStyle;
}

// @beta
export interface BlockedMessage extends MessageCommon {
    // (undocumented)
    attached?: MessageAttachedStatus;
    // (undocumented)
    deletedOn?: Date;
    // (undocumented)
    link?: string;
    // (undocumented)
    linkText?: string;
    // (undocumented)
    messageType: 'blocked';
    // (undocumented)
    mine?: boolean;
    // (undocumented)
    senderDisplayName?: string;
    // (undocumented)
    senderId?: string;
    // (undocumented)
    status?: MessageStatus;
    // (undocumented)
    warningText?: string;
}

// @beta
export const BrowserPermissionDenied: (props: BrowserPermissionDeniedProps) => JSX.Element;

// @beta
export const BrowserPermissionDeniedIOS: (props: BrowserPermissionDeniedIOSProps) => JSX.Element;

// @beta
export interface BrowserPermissionDeniedIOSProps extends BrowserPermissionDeniedProps {
    imageSource?: string;
    strings?: BrowserPermissionDeniedIOSStrings;
}

// @beta
export interface BrowserPermissionDeniedIOSStrings extends BrowserPermissionDeniedStrings {
    imageAltText: string;
    primaryText: string;
    secondaryText: string;
    step1DigitText: string;
    step1Text: string;
    step2DigitText: string;
    step2Text: string;
    step3DigitText: string;
    step3Text: string;
    step4DigitText: string;
    step4Text: string;
}

// @beta
export interface BrowserPermissionDeniedProps {
    onTroubleshootingClick?: () => void;
    onTryAgainClick?: () => void;
    strings?: BrowserPermissionDeniedStrings;
    styles?: BrowserPermissionDeniedStyles;
}

// @beta
export interface BrowserPermissionDeniedStrings {
    linkText: string;
    primaryButtonText: string;
    primaryText: string;
    secondaryText: string;
}

// @beta
export interface BrowserPermissionDeniedStyles extends BaseCustomStyles {
    primaryButton?: IButtonStyles;
    troubleshootingLink?: ILinkStyles;
}

// @public
export interface CallingTheme {
    // (undocumented)
    callingPalette: {
        callRed: string;
        callRedDark: string;
        callRedDarker: string;
        iconWhite: string;
        raiseHandGold: string;
    };
}

// @public
export type CallParticipantListParticipant = ParticipantListParticipant & {
    state: ParticipantState;
    isScreenSharing?: boolean;
    isMuted?: boolean;
    isSpeaking?: boolean;
    raisedHand?: RaisedHand;
    reaction?: Reaction;
    spotlight?: Spotlight;
};

// @internal
export interface _CallRating<TIssue extends _AudioIssue | _OverallIssue | _ScreenshareIssue | _VideoIssue> {
    issues?: TIssue[];
    scale?: _RatingScale;
    score: number;
}

// @internal
export interface _CallSurvey {
    audioRating?: _CallRating<_AudioIssue>;
    overallRating?: _CallRating<_OverallIssue>;
    screenshareRating?: _CallRating<_ScreenshareIssue>;
    videoRating?: _CallRating<_VideoIssue>;
}

// @beta
export interface CallSurveyImprovementSuggestions {
    audioRating?: string;
    overallRating?: string;
    screenshareRating?: string;
    videoRating?: string;
}

// @internal
export interface _CallSurveyResponse extends _CallSurvey {
    readonly callId: string;
    readonly id: string;
    readonly localParticipantId: string;
}

// @beta
export const CameraAndMicrophoneSitePermissions: (props: CameraAndMicrophoneSitePermissionsProps) => JSX.Element;

// @beta
export interface CameraAndMicrophoneSitePermissionsProps extends CommonSitePermissionsProps {
    cameraIconName?: string;
    connectorIconName?: string;
    microphoneIconName?: string;
    strings?: CameraAndMicrophoneSitePermissionsStrings;
}

// @beta
export type CameraAndMicrophoneSitePermissionsStrings = SitePermissionsStrings;

// @public
export const CameraButton: (props: CameraButtonProps) => JSX.Element;

// @public
export interface CameraButtonContextualMenuStyles extends IContextualMenuStyles {
    menuItemStyles?: IContextualMenuItemStyles;
}

// @public
export interface CameraButtonProps extends ControlBarButtonProps {
    cameras?: OptionsDevice[];
    enableDeviceSelectionMenu?: boolean;
    localVideoViewOptions?: VideoStreamOptions;
    onClickVideoEffects?: (showVideoEffects: boolean) => void;
    onSelectCamera?: (device: OptionsDevice) => Promise<void>;
    onToggleCamera?: (options?: VideoStreamOptions) => Promise<void>;
    selectedCamera?: OptionsDevice;
    strings?: Partial<CameraButtonStrings>;
    styles?: Partial<CameraButtonStyles>;
}

// @public
export interface CameraButtonStrings {
    cameraActionTurnedOffAnnouncement?: string;
    cameraActionTurnedOnAnnouncement?: string;
    cameraButtonSplitRoleDescription?: string;
    cameraMenuTitle: string;
    cameraMenuTooltip: string;
    cameraPrimaryActionSplitButtonTitle?: string;
    offLabel: string;
    offSplitButtonAriaLabel?: string;
    offSplitButtonPrimaryActionCamera?: string;
    onLabel: string;
    onSplitButtonAriaLabel?: string;
    onSplitButtonPrimaryActionCamera?: string;
    tooltipDisabledContent?: string;
    tooltipOffContent?: string;
    tooltipOnContent?: string;
    tooltipVideoLoadingContent?: string;
    videoEffectsMenuItemTitle?: string;
}

// @public
export interface CameraButtonStyles extends ControlBarButtonStyles {
    menuStyles?: Partial<CameraButtonContextualMenuStyles>;
}

// @beta
export const CameraSitePermissions: (props: CameraSitePermissionsProps) => JSX.Element;

// @beta
export interface CameraSitePermissionsProps extends CommonSitePermissionsProps {
    cameraIconName?: string;
    strings?: CameraSitePermissionsStrings;
}

// @beta
export type CameraSitePermissionsStrings = SitePermissionsStrings;

// @public
export type CancelEditCallback = (messageId: string) => void;

// @internal
export const _Caption: (props: _CaptionProps) => JSX.Element;

// @public
export interface CaptionLanguageStrings {
    // (undocumented)
    'fr-ca': string;
    // (undocumented)
    'pt-pt': string;
    // (undocumented)
    'zh-Hans': string;
    // (undocumented)
    'zh-Hant': string;
    // (undocumented)
    ar: string;
    // (undocumented)
    cs: string;
    // (undocumented)
    cy: string;
    // (undocumented)
    da: string;
    // (undocumented)
    de: string;
    // (undocumented)
    el: string;
    // (undocumented)
    en: string;
    // (undocumented)
    es: string;
    // (undocumented)
    fi: string;
    // (undocumented)
    fr: string;
    // (undocumented)
    he: string;
    // (undocumented)
    hi: string;
    // (undocumented)
    hu: string;
    // (undocumented)
    it: string;
    // (undocumented)
    ja: string;
    // (undocumented)
    ko: string;
    // (undocumented)
    nb: string;
    // (undocumented)
    nl: string;
    // (undocumented)
    pl: string;
    // (undocumented)
    pt: string;
    // (undocumented)
    ro: string;
    // (undocumented)
    ru: string;
    // (undocumented)
    sk: string;
    // (undocumented)
    sv: string;
    // (undocumented)
    th: string;
    // (undocumented)
    tr: string;
    // (undocumented)
    uk: string;
    // (undocumented)
    vi: string;
}

// @internal
export interface _CaptionProps extends _CaptionsInfo {
    onRenderAvatar?: OnRenderAvatarCallback;
}

// @internal
export const _CaptionsBanner: (props: _CaptionsBannerProps) => JSX.Element;

// @internal
export interface _CaptionsBannerProps {
    // (undocumented)
    captions: _CaptionsInfo[];
    formFactor?: 'default' | 'compact';
    // (undocumented)
    isCaptionsOn?: boolean;
    onRenderAvatar?: OnRenderAvatarCallback;
    // (undocumented)
    startCaptionsInProgress?: boolean;
    // (undocumented)
    strings?: _CaptionsBannerStrings;
}

// @internal
export interface _CaptionsBannerStrings {
    // (undocumented)
    captionsBannerSpinnerText?: string;
}

// @internal
export type _CaptionsInfo = {
    id: string;
    displayName: string;
    captionText: string;
    userId?: string;
};

// @internal
export type _captionsOptions = {
    spokenLanguage: string;
};

// @internal
export const _CaptionsSettingsModal: (props: _CaptionsSettingsModalProps) => JSX.Element;

// @internal
export interface _CaptionsSettingsModalProps {
    // (undocumented)
    captionLanguageStrings?: CaptionLanguageStrings;
    // (undocumented)
    changeCaptionLanguage?: boolean;
    // (undocumented)
    currentCaptionLanguage: _SupportedCaptionLanguage;
    // (undocumented)
    currentSpokenLanguage: _SupportedSpokenLanguage;
    // (undocumented)
    isCaptionsFeatureActive?: boolean;
    // (undocumented)
    onDismissCaptionsSettings?: () => void;
    // (undocumented)
    onSetCaptionLanguage: (language: _SupportedCaptionLanguage) => Promise<void>;
    // (undocumented)
    onSetSpokenLanguage: (language: _SupportedSpokenLanguage) => Promise<void>;
    // (undocumented)
    onStartCaptions: (options?: _captionsOptions) => Promise<void>;
    // (undocumented)
    showModal?: boolean;
    // (undocumented)
    spokenLanguageStrings?: SpokenLanguageStrings;
    // (undocumented)
    strings?: _CaptionsSettingsModalStrings;
    // (undocumented)
    supportedCaptionLanguages: _SupportedCaptionLanguage[];
    // (undocumented)
    supportedSpokenLanguages: _SupportedSpokenLanguage[];
}

// @internal
export interface _CaptionsSettingsModalStrings {
    // (undocumented)
    captionsSettingsCancelButtonLabel?: string;
    // (undocumented)
    captionsSettingsCaptionLanguageDropdownInfoText?: string;
    // (undocumented)
    captionsSettingsCaptionLanguageDropdownLabel?: string;
    // (undocumented)
    captionsSettingsCloseModalButtonAriaLabel?: string;
    // (undocumented)
    captionsSettingsConfirmButtonLabel?: string;
    // (undocumented)
    captionsSettingsModalAriaLabel?: string;
    // (undocumented)
    captionsSettingsModalTitle?: string;
    // (undocumented)
    captionsSettingsSpokenLanguageDropdownInfoText?: string;
    // (undocumented)
    captionsSettingsSpokenLanguageDropdownLabel?: string;
}

// @beta
export type ChatAttachmentType = 'unknown' | /* @conditional-compile-remove(teams-inline-images-and-file-sharing) */ 'inlineImage' | /* @conditional-compile-remove(file-sharing) */ 'file';

// @public
export interface ChatMessage extends MessageCommon {
    // (undocumented)
    attached?: MessageAttachedStatus;
    // (undocumented)
    clientMessageId?: string;
    // (undocumented)
    content?: string;
    // (undocumented)
    contentType: MessageContentType;
    // (undocumented)
    deletedOn?: Date;
    // (undocumented)
    editedOn?: Date;
    // (undocumented)
    failureReason?: string;
    // @beta
    files?: AttachmentMetadata[];
    // (undocumented)
    messageType: 'chat';
    metadata?: Record<string, string>;
    // (undocumented)
    mine?: boolean;
    // (undocumented)
    senderDisplayName?: string;
    // (undocumented)
    senderId?: string;
    // (undocumented)
    status?: MessageStatus;
}

// @beta
export interface CommonSitePermissionsProps {
    appName: string;
    browserHint?: 'safari' | 'unset';
    kind: 'request' | 'denied' | 'check';
    onContinueAnywayClick?: () => void;
    onTroubleshootingClick?: () => void;
    styles?: SitePermissionsStyles;
}

// @public
export type CommunicationParticipant = {
    userId: string;
    displayName?: string;
};

// @internal
export const _ComplianceBanner: (props: _ComplianceBannerProps) => JSX.Element;

// @internal (undocumented)
export type _ComplianceBannerProps = {
    callTranscribeState?: boolean;
    callRecordState?: boolean;
    strings: _ComplianceBannerStrings;
};

// @internal
export interface _ComplianceBannerStrings {
    // (undocumented)
    close: string;
    // (undocumented)
    complianceBannerNowOnlyRecording: string;
    // (undocumented)
    complianceBannerNowOnlyTranscription: string;
    // (undocumented)
    complianceBannerRecordingAndTranscriptionSaved: string;
    // (undocumented)
    complianceBannerRecordingAndTranscriptionStarted: string;
    // (undocumented)
    complianceBannerRecordingAndTranscriptionStopped: string;
    // (undocumented)
    complianceBannerRecordingSaving: string;
    // (undocumented)
    complianceBannerRecordingStarted: string;
    // (undocumented)
    complianceBannerRecordingStopped: string;
    // (undocumented)
    complianceBannerTranscriptionConsent: string;
    // (undocumented)
    complianceBannerTranscriptionSaving: string;
    // (undocumented)
    complianceBannerTranscriptionStarted: string;
    // (undocumented)
    complianceBannerTranscriptionStopped: string;
    // (undocumented)
    learnMore: string;
    // (undocumented)
    privacyPolicy: string;
}

// @public
export const COMPONENT_LOCALE_AR_SA: ComponentLocale;

// @public
export const COMPONENT_LOCALE_CS_CZ: ComponentLocale;

// @public
export const COMPONENT_LOCALE_DE_DE: ComponentLocale;

// @public
export const COMPONENT_LOCALE_EN_GB: ComponentLocale;

// @public
export const COMPONENT_LOCALE_EN_US: ComponentLocale;

// @public
export const COMPONENT_LOCALE_ES_ES: ComponentLocale;

// @public
export const COMPONENT_LOCALE_FI_FI: ComponentLocale;

// @public
export const COMPONENT_LOCALE_FR_FR: ComponentLocale;

// @public
export const COMPONENT_LOCALE_HE_IL: ComponentLocale;

// @public
export const COMPONENT_LOCALE_IT_IT: ComponentLocale;

// @public
export const COMPONENT_LOCALE_JA_JP: ComponentLocale;

// @public
export const COMPONENT_LOCALE_KO_KR: ComponentLocale;

// @public
export const COMPONENT_LOCALE_NB_NO: ComponentLocale;

// @public
export const COMPONENT_LOCALE_NL_NL: ComponentLocale;

// @public
export const COMPONENT_LOCALE_PL_PL: ComponentLocale;

// @public
export const COMPONENT_LOCALE_PT_BR: ComponentLocale;

// @public
export const COMPONENT_LOCALE_RU_RU: ComponentLocale;

// @public
export const COMPONENT_LOCALE_SV_SE: ComponentLocale;

// @public
export const COMPONENT_LOCALE_TR_TR: ComponentLocale;

// @public
export const COMPONENT_LOCALE_ZH_CN: ComponentLocale;

// @public
export const COMPONENT_LOCALE_ZH_TW: ComponentLocale;

// @public
export type ComponentIcons = Record<keyof typeof DEFAULT_COMPONENT_ICONS, JSX.Element>;

// @public
export interface ComponentLocale {
    // @beta
    onDisplayDateTimeString?: (messageDate: Date) => string;
    strings: ComponentStrings;
}

// @public
export type ComponentSlotStyle = Omit<IRawStyle, 'animation'>;

// @public
export interface ComponentStrings {
    BrowserPermissionDenied: BrowserPermissionDeniedStrings;
    BrowserPermissionDeniedIOS: BrowserPermissionDeniedIOSStrings;
    CameraAndMicrophoneSitePermissionsCheck: SitePermissionsStrings;
    CameraAndMicrophoneSitePermissionsDenied: SitePermissionsStrings;
    CameraAndMicrophoneSitePermissionsDeniedSafari: SitePermissionsStrings;
    CameraAndMicrophoneSitePermissionsRequest: SitePermissionsStrings;
    cameraButton: CameraButtonStrings;
    CameraSitePermissionsCheck: SitePermissionsStrings;
    CameraSitePermissionsDenied: SitePermissionsStrings;
    CameraSitePermissionsDeniedSafari: SitePermissionsStrings;
    CameraSitePermissionsRequest: SitePermissionsStrings;
    devicesButton: DevicesButtonStrings;
    dialpad: DialpadStrings;
    endCallButton: EndCallButtonStrings;
    errorBar: ErrorBarStrings;
    holdButton: HoldButtonStrings;
    imageOverlay: ImageOverlayStrings;
    mentionPopover: MentionPopoverStrings;
    messageStatusIndicator: MessageStatusIndicatorStrings;
    messageThread: MessageThreadStrings;
    microphoneButton: MicrophoneButtonStrings;
    MicrophoneSitePermissionsCheck: SitePermissionsStrings;
    MicrophoneSitePermissionsDenied: SitePermissionsStrings;
    MicrophoneSitePermissionsDeniedSafari: SitePermissionsStrings;
    MicrophoneSitePermissionsRequest: SitePermissionsStrings;
    participantItem: ParticipantItemStrings;
    ParticipantList: ParticipantListStrings;
    participantsButton: ParticipantsButtonStrings;
    raiseHandButton: RaiseHandButtonStrings;
    // @beta
    reactionButton: ReactionButtonStrings;
    richTextSendBox: RichTextSendBoxStrings;
    screenShareButton: ScreenShareButtonStrings;
    sendBox: SendBoxStrings;
    typingIndicator: TypingIndicatorStrings;
    UnsupportedBrowser: UnsupportedBrowserStrings;
    UnsupportedBrowserVersion: UnsupportedBrowserVersionStrings;
    UnsupportedOperatingSystem: UnsupportedOperatingSystemStrings;
    verticalGallery: VerticalGalleryStrings;
    videoGallery: VideoGalleryStrings;
    videoTile: VideoTileStrings;
}

// @public
export interface ContentSystemMessage extends SystemMessageCommon {
    // (undocumented)
    content: string;
    // (undocumented)
    systemMessageType: 'content';
}

// @public
export const ControlBar: (props: ControlBarProps) => JSX.Element;

// @public
export const ControlBarButton: (props: ControlBarButtonProps) => JSX.Element;

// @public
export interface ControlBarButtonProps extends IButtonProps {
    disableTooltip?: boolean;
    labelKey?: string;
    onRenderOffIcon?: IRenderFunction<IButtonProps>;
    onRenderOnIcon?: IRenderFunction<IButtonProps>;
    showLabel?: boolean;
    strings?: ControlBarButtonStrings;
    styles?: ControlBarButtonStyles;
    tooltipId?: string;
}

// @public
export interface ControlBarButtonStrings {
    label?: string;
    offLabel?: string;
    onLabel?: string;
    tooltipContent?: string;
    tooltipDisabledContent?: string;
    tooltipOffContent?: string;
    tooltipOnContent?: string;
}

// @public
export type ControlBarButtonStyles = IButtonStyles;

// @public
export type ControlBarLayout = 'horizontal' | 'vertical' | 'dockedTop' | 'dockedBottom' | 'dockedLeft' | 'dockedRight' | 'floatingTop' | 'floatingBottom' | 'floatingLeft' | 'floatingRight';

// @public
export interface ControlBarProps {
    children?: React_2.ReactNode;
    layout?: ControlBarLayout;
    styles?: BaseCustomStyles;
}

// @public
export interface CreateVideoStreamViewResult {
    view: {
        updateScalingMode: (scalingMode: ViewScalingMode) => Promise<void>;
    };
}

// @public
export type CustomAvatarOptions = {
    coinSize?: number;
    hidePersonaDetails?: boolean;
    initialsTextColor?: string;
    noVideoAvailableAriaLabel?: string;
    presence?: PersonaPresence;
    size?: PersonaSize;
    styles?: IStyleFunctionOrObject<IPersonaStyleProps, IPersonaStyles>;
    text?: string;
    participantState?: ParticipantState;
    showUnknownPersonaCoin?: boolean;
};

// @public
export interface CustomMessage extends MessageCommon {
    // (undocumented)
    content: string;
    // (undocumented)
    messageType: 'custom';
}

// @public
export const darkTheme: PartialTheme & CallingTheme;

// @public
export const DEFAULT_COMPONENT_ICONS: {
    ChatMessageOptions: React_2.JSX.Element;
    ControlButtonCameraOff: React_2.JSX.Element;
    ControlButtonCameraOn: React_2.JSX.Element;
    ControlButtonEndCall: React_2.JSX.Element;
    ControlButtonMicOff: React_2.JSX.Element;
    ControlButtonMicOn: React_2.JSX.Element;
    ControlButtonOptions: React_2.JSX.Element;
    ControlButtonParticipants: React_2.JSX.Element;
    ControlButtonParticipantsContextualMenuItem: React_2.JSX.Element;
    ControlButtonScreenShareStart: React_2.JSX.Element;
    ControlButtonScreenShareStop: React_2.JSX.Element;
    ControlButtonRaiseHand: React_2.JSX.Element;
    ControlButtonLowerHand: React_2.JSX.Element;
    RaiseHandContextualMenuItem: React_2.JSX.Element;
    LowerHandContextualMenuItem: React_2.JSX.Element;
    ReactionButtonIcon: React_2.JSX.Element;
    CancelFileUpload: React_2.JSX.Element;
    DownloadFile: React_2.JSX.Element;
    DataLossPreventionProhibited: React_2.JSX.Element;
    EditBoxCancel: React_2.JSX.Element;
    EditBoxSubmit: React_2.JSX.Element;
    ErrorBarCallCameraAccessDenied: React_2.JSX.Element;
    ErrorBarCallCameraAlreadyInUse: React_2.JSX.Element;
    ErrorBarCallLocalVideoFreeze: React_2.JSX.Element;
    ErrorBarCallMacOsCameraAccessDenied: React_2.JSX.Element;
    ErrorBarCallMacOsMicrophoneAccessDenied: React_2.JSX.Element;
    ErrorBarCallMicrophoneAccessDenied: React_2.JSX.Element;
    ErrorBarCallMicrophoneMutedBySystem: React_2.JSX.Element;
    ErrorBarCallMicrophoneUnmutedBySystem: React_2.JSX.Element;
    ErrorBarCallNetworkQualityLow: React_2.JSX.Element;
    ErrorBarCallNoMicrophoneFound: React_2.JSX.Element;
    ErrorBarCallNoSpeakerFound: React_2.JSX.Element;
    ErrorBarClear: React_2.JSX.Element;
    ErrorBarCallVideoRecoveredBySystem: React_2.JSX.Element;
    ErrorBarCallVideoStoppedBySystem: React_2.JSX.Element;
    HorizontalGalleryLeftButton: React_2.JSX.Element;
    HorizontalGalleryRightButton: React_2.JSX.Element;
    MessageDelivered: React_2.JSX.Element;
    MessageEdit: React_2.JSX.Element;
    MessageFailed: React_2.JSX.Element;
    MessageRemove: React_2.JSX.Element;
    MessageResend: React_2.JSX.Element;
    MessageSeen: React_2.JSX.Element;
    MessageSending: React_2.JSX.Element;
    OptionsCamera: React_2.JSX.Element;
    OptionsMic: React_2.JSX.Element;
    OptionsSpeaker: React_2.JSX.Element;
    ParticipantItemMicOff: React_2.JSX.Element;
    ParticipantItemOptions: React_2.JSX.Element;
    ParticipantItemOptionsHovered: React_2.JSX.Element;
    ParticipantItemScreenShareStart: React_2.JSX.Element;
    ParticipantItemSpotlighted: React_2.JSX.Element;
    HoldCallContextualMenuItem: React_2.JSX.Element;
    HoldCallButton: React_2.JSX.Element;
    ResumeCall: React_2.JSX.Element;
    SendBoxSend: React_2.JSX.Element;
    SendBoxSendHovered: React_2.JSX.Element;
    VideoTileMicOff: React_2.JSX.Element;
    DialpadBackspace: React_2.JSX.Element;
    SitePermissionsSparkle: React_2.JSX.Element;
    SitePermissionCamera: React_2.JSX.Element;
    SitePermissionMic: React_2.JSX.Element;
    SitePermissionCameraDenied: React_2.JSX.Element;
    SitePermissionMicDenied: React_2.JSX.Element;
    UnsupportedEnvironmentWarning: React_2.JSX.Element;
    BrowserPermissionDeniedError: React_2.JSX.Element;
    VideoTilePinned: React_2.JSX.Element;
    VideoTileMoreOptions: React_2.JSX.Element;
    VideoTileScaleFit: React_2.JSX.Element;
    VideoTileScaleFill: React_2.JSX.Element;
    PinParticipant: React_2.JSX.Element;
    UnpinParticipant: React_2.JSX.Element;
    SplitButtonPrimaryActionCameraOn: React_2.JSX.Element;
    SplitButtonPrimaryActionCameraOff: React_2.JSX.Element;
    SplitButtonPrimaryActionMicUnmuted: React_2.JSX.Element;
    SplitButtonPrimaryActionMicMuted: React_2.JSX.Element;
    VerticalGalleryLeftButton: React_2.JSX.Element;
    VerticalGalleryRightButton: React_2.JSX.Element;
    ControlButtonVideoEffectsOption: React_2.JSX.Element;
    ConfigurationScreenVideoEffectsButton: React_2.JSX.Element;
    CaptionsIcon: React_2.JSX.Element;
    CaptionsOffIcon: React_2.JSX.Element;
    CaptionsSettingsIcon: React_2.JSX.Element;
    ChangeSpokenLanguageIcon: React_2.JSX.Element;
    ChangeCaptionLanguageIcon: React_2.JSX.Element;
    ContextMenuCameraIcon: React_2.JSX.Element;
    ContextMenuMicIcon: React_2.JSX.Element;
    ContextMenuSpeakerIcon: React_2.JSX.Element;
    SurveyStarIcon: React_2.JSX.Element;
    SurveyStarIconFilled: React_2.JSX.Element;
    StartSpotlightContextualMenuItem: React_2.JSX.Element;
    StopSpotlightContextualMenuItem: React_2.JSX.Element;
    VideoSpotlighted: React_2.JSX.Element;
    RTEBoldButtonIcon: React_2.JSX.Element;
    RTEItalicButtonIcon: React_2.JSX.Element;
    RTEUnderlineButtonIcon: React_2.JSX.Element;
    RTEBulletListButtonIcon: React_2.JSX.Element;
    RTEtNumberListButtonIcon: React_2.JSX.Element;
    RTEIndentDecreaseButtonIcon: React_2.JSX.Element;
    RTEIndentIncreaseButtonIcon: React_2.JSX.Element;
    RTEDividerIcon: React_2.JSX.Element;
};

// @internal
export interface _DeviceMenuProps {
    // (undocumented)
    cameras?: OptionsDevice[];
    // (undocumented)
    microphones?: OptionsDevice[];
    // (undocumented)
    onSelectCamera?: (device: OptionsDevice) => Promise<void>;
    // (undocumented)
    onSelectMicrophone?: (device: OptionsDevice) => Promise<void>;
    // (undocumented)
    onSelectSpeaker?: (device: OptionsDevice) => Promise<void>;
    // (undocumented)
    selectedCamera?: OptionsDevice;
    // (undocumented)
    selectedMicrophone?: OptionsDevice;
    // (undocumented)
    selectedSpeaker?: OptionsDevice;
    // (undocumented)
    speakers?: OptionsDevice[];
    // (undocumented)
    styles?: Partial<_DeviceMenuStyles>;
}

// @internal
export interface _DeviceMenuStrings {
    audioDeviceMenuTitle?: string;
    audioDeviceMenuTooltip?: string;
    cameraMenuTitle?: string;
    cameraMenuTooltip?: string;
    microphoneMenuTitle?: string;
    microphoneMenuTooltip?: string;
    speakerMenuTitle?: string;
    speakerMenuTooltip?: string;
}

// @internal
export interface _DeviceMenuStyles extends IContextualMenuStyles {
    // (undocumented)
    menuItemStyles?: IContextualMenuItemStyles;
}

// @internal
export const _DevicePermissionDropdown: (props: _DevicePermissionDropdownProps) => JSX.Element;

// @internal
export interface _DevicePermissionDropdownProps {
    askDevicePermission?(constrain: _PermissionConstraints): Promise<void>;
    constrain?: _PermissionConstraints;
    icon?: JSX.Element;
    onClick?: () => void;
    options?: IDropdownOption[];
    strings?: _DevicePermissionDropdownStrings;
    styles?: Partial<IDropdownStyles>;
}

// @internal
export interface _DevicePermissionDropdownStrings {
    actionButtonContent?: string;
    label?: string;
    placeHolderText: string;
}

// @public
export const DevicesButton: (props: DevicesButtonProps) => JSX.Element;

// @public
export interface DevicesButtonContextualMenuStyles extends IContextualMenuStyles {
    menuItemStyles?: IContextualMenuItemStyles;
}

// @public
export interface DevicesButtonProps extends ControlBarButtonProps {
    cameras?: OptionsDevice[];
    microphones?: OptionsDevice[];
    onSelectCamera?: (device: OptionsDevice) => Promise<void>;
    onSelectMicrophone?: (device: OptionsDevice) => Promise<void>;
    onSelectSpeaker?: (device: OptionsDevice) => Promise<void>;
    selectedCamera?: OptionsDevice;
    selectedMicrophone?: OptionsDevice;
    selectedSpeaker?: OptionsDevice;
    speakers?: OptionsDevice[];
    strings?: Partial<DevicesButtonStrings>;
    styles?: DevicesButtonStyles;
}

// @public
export interface DevicesButtonStrings {
    cameraMenuTitle: string;
    cameraMenuTooltip: string;
    label: string;
    microphoneMenuTitle: string;
    microphoneMenuTooltip: string;
    speakerMenuTitle: string;
    speakerMenuTooltip: string;
    tooltipContent?: string;
}

// @public
export interface DevicesButtonStyles extends ControlBarButtonStyles {
    menuStyles?: Partial<DevicesButtonContextualMenuStyles>;
}

// @public
export const Dialpad: (props: DialpadProps) => JSX.Element;

// @public
export type DialpadMode = 'dtmf' | 'dialer';

// @public
export interface DialpadProps {
    dialpadMode?: DialpadMode;
    disableDtmfPlayback?: boolean;
    longPressTrigger?: LongPressTrigger;
    onChange?: (input: string) => void;
    onClickDialpadButton?: (buttonValue: string, buttonIndex: number) => void;
    onSendDtmfTone?: (dtmfTone: DtmfTone) => Promise<void>;
    showDeleteButton?: boolean;
    // (undocumented)
    strings?: DialpadStrings;
    styles?: DialpadStyles;
    textFieldValue?: string;
}

// @public
export interface DialpadStrings {
    // (undocumented)
    deleteButtonAriaLabel?: string;
    // (undocumented)
    placeholderText: string;
}

// @public
export interface DialpadStyles {
    // (undocumented)
    button?: IButtonStyles;
    // (undocumented)
    deleteIcon?: IButtonStyles;
    // (undocumented)
    digit?: IStyle;
    // (undocumented)
    letter?: IStyle;
    // (undocumented)
    root?: IStyle;
    // (undocumented)
    textField?: Partial<ITextFieldStyles>;
}

// @internal
export const _DrawerMenu: (props: _DrawerMenuProps) => JSX.Element;

// @internal
export interface _DrawerMenuItemProps {
    disabled?: boolean;
    iconProps?: IIconProps;
    id?: string;
    // (undocumented)
    itemKey: string;
    // (undocumented)
    onItemClick?: (ev?: React_2.MouseEvent<HTMLElement> | React_2.KeyboardEvent<HTMLElement>, itemKey?: string) => void;
    secondaryComponent?: JSX.Element;
    secondaryIconProps?: IIconProps;
    secondaryText?: string;
    shouldFocusOnMount?: boolean;
    // (undocumented)
    styles?: BaseCustomStyles;
    // (undocumented)
    subMenuProps?: _DrawerMenuItemProps[];
    text?: string;
}

// @internal
export interface _DrawerMenuProps {
    disableMaxHeight?: boolean;
    heading?: string;
    // (undocumented)
    items: _DrawerMenuItemProps[];
    onLightDismiss: () => void;
    // (undocumented)
    styles?: _DrawerMenuStyles;
}

// @internal
export interface _DrawerMenuStyles extends BaseCustomStyles {
    drawerSurfaceStyles?: _DrawerSurfaceStyles;
}

// @internal
export const _DrawerSurface: (props: _DrawerSurfaceProps) => JSX.Element;

// @internal
export interface _DrawerSurfaceProps {
    children: React_2.ReactNode;
    disableMaxHeight?: boolean;
    heading?: string;
    onLightDismiss: () => void;
    styles?: _DrawerSurfaceStyles;
}

// @internal
export interface _DrawerSurfaceStyles extends BaseCustomStyles {
    drawerContentContainer?: BaseCustomStyles;
    drawerContentRoot?: BaseCustomStyles;
    lightDismissRoot?: BaseCustomStyles;
}

// @public
export type DtmfTone = 'A' | 'B' | 'C' | 'D' | 'Flash' | 'Num0' | 'Num1' | 'Num2' | 'Num3' | 'Num4' | 'Num5' | 'Num6' | 'Num7' | 'Num8' | 'Num9' | 'Pound' | 'Star';

// @public
export const EndCallButton: (props: EndCallButtonProps) => JSX.Element;

// @public
export interface EndCallButtonProps extends ControlBarButtonProps {
    onHangUp?: () => Promise<void>;
    strings?: EndCallButtonStrings;
}

// @public
export interface EndCallButtonStrings {
    label: string;
    tooltipContent?: string;
}

// @public
export const ErrorBar: (props: ErrorBarProps) => JSX.Element;

// @public
export interface ErrorBarProps extends IMessageBarProps {
    activeErrorMessages: ActiveErrorMessage[];
    ignorePremountErrors?: boolean;
    onDismissError?: (dismissedError: ActiveErrorMessage) => void;
    strings?: ErrorBarStrings;
}

// @public
export interface ErrorBarStrings {
    accessDenied: string;
    callCameraAccessDenied: string;
    callCameraAccessDeniedSafari: string;
    callCameraAlreadyInUse: string;
    callLocalVideoFreeze: string;
    callMacOsCameraAccessDenied: string;
    callMacOsMicrophoneAccessDenied: string;
    callMacOsScreenShareAccessDenied: string;
    callMicrophoneAccessDenied: string;
    callMicrophoneAccessDeniedSafari: string;
    callMicrophoneMutedBySystem: string;
    callMicrophoneUnmutedBySystem: string;
    callNetworkQualityLow: string;
    callNoMicrophoneFound: string;
    callNoSpeakerFound: string;
    callVideoRecoveredBySystem: string;
    callVideoStoppedBySystem: string;
    cameraFrozenForRemoteParticipants?: string;
    dismissButtonAriaLabel?: string;
    failedToJoinCallGeneric?: string;
    failedToJoinCallInvalidMeetingLink?: string;
    muteGeneric: string;
    sendMessageGeneric: string;
    sendMessageNotInChatThread: string;
    startScreenShareGeneric: string;
    startSpotlightWhileMaxParticipantsAreSpotlighted: string;
    startVideoGeneric: string;
    stopScreenShareGeneric: string;
    stopVideoGeneric: string;
    unableToReachChatService: string;
    unableToStartVideoEffect?: string;
    unmuteGeneric: string;
    userNotInChatThread: string;
}

// @public
export type ErrorType = keyof ErrorBarStrings;

// @internal (undocumented)
export interface _ExtendedIModalProps extends IModalProps {
    // (undocumented)
    maxDragPosition?: _ICoordinates;
    // (undocumented)
    minDragPosition?: _ICoordinates;
}

// @internal
export const _FileCard: (props: _FileCardProps) => JSX.Element;

// @internal
export const _FileCardGroup: (props: _FileCardGroupProps) => JSX.Element;

// @internal
export interface _FileCardGroupProps {
    // (undocumented)
    ariaLabel?: string;
    // (undocumented)
    children: React_2.ReactNode;
}

// @internal
export interface _FileCardProps {
    actionHandler?: () => void;
    actionIcon?: JSX.Element;
    fileExtension: string;
    fileName: string;
    progress?: number;
    strings?: _FileUploadCardsStrings;
}

// @internal (undocumented)
export const _FileDownloadCards: (props: _FileDownloadCardsProps) => JSX.Element;

// @internal (undocumented)
export interface _FileDownloadCardsProps {
    downloadHandler?: FileDownloadHandler;
    fileMetadata?: AttachmentMetadata[];
    onDownloadErrorMessage?: (errMsg: string) => void;
    strings?: _FileDownloadCardsStrings;
    userId: string;
}

// @internal
export interface _FileDownloadCardsStrings {
    downloadFile: string;
    // (undocumented)
    fileCardGroupMessage: string;
}

// @beta
export interface FileDownloadError {
    errorMessage: string;
}

// @beta
export type FileDownloadHandler = (userId: string, fileMetadata: AttachmentMetadata) => Promise<URL | FileDownloadError>;

// @internal
export interface _FileUploadCardsStrings {
    removeFile: string;
    uploadCompleted: string;
    uploading: string;
}

// @public
export const FluentThemeProvider: (props: FluentThemeProviderProps) => JSX.Element;

// @public
export interface FluentThemeProviderProps {
    children: React_2.ReactNode;
    fluentTheme?: PartialTheme | Theme;
    rootStyle?: React_2.CSSProperties | undefined;
    rtl?: boolean;
}

// @internal
export const _generateDefaultDeviceMenuProps: (props: _DeviceMenuProps, strings: _DeviceMenuStrings, primaryActionItem?: IContextualMenuItem, isSelectCamAllowed?: boolean, isSelectMicAllowed?: boolean) => {
    items: IContextualMenuItem[];
} | undefined;

// @internal
export const _generateTheme: (accentColor: string, variant: 'light' | 'dark') => ITheme;

// @public
export const GridLayout: (props: GridLayoutProps) => JSX.Element;

// @public
export interface GridLayoutProps {
    // (undocumented)
    children: React_2.ReactNode;
    styles?: BaseCustomStyles;
}

// @public
export interface GridLayoutStyles extends BaseCustomStyles {
    children?: IStyle;
}

// @internal
export const _HighContrastAwareIcon: (props: _HighContrastAwareIconProps) => JSX.Element;

// @internal (undocumented)
export interface _HighContrastAwareIconProps {
    disabled?: boolean | undefined;
    iconName: string;
}

// @beta
export const HoldButton: (props: HoldButtonProps) => JSX.Element;

// @beta (undocumented)
export interface HoldButtonProps extends ControlBarButtonProps {
    onToggleHold: () => Promise<void>;
    strings?: HoldButtonStrings;
}

// @beta
export interface HoldButtonStrings {
    offLabel: string;
    onLabel: string;
    tooltipOffContent: string;
    tooltipOnContent: string;
}

// @public
export interface HorizontalGalleryStyles extends BaseCustomStyles {
    children?: IStyle;
    nextButton?: IStyle;
    previousButton?: IStyle;
}

// @internal (undocumented)
export type _ICoordinates = {
    x: number;
    y: number;
};

// @internal
export const _IdentifierProvider: (props: _IdentifierProviderProps) => JSX.Element;

// @internal
export interface _IdentifierProviderProps {
    // (undocumented)
    children: React_2.ReactNode;
    // (undocumented)
    identifiers?: _Identifiers;
}

// @internal
export interface _Identifiers {
    horizontalGalleryVideoTile: string;
    mentionSuggestionItem: string;
    mentionSuggestionList: string;
    messageContent: string;
    messageTimestamp: string;
    overflowGalleryLeftNavButton: string;
    overflowGalleryRightNavButton: string;
    participantButtonPeopleMenuItem: string;
    participantItemMenuButton: string;
    participantList: string;
    participantListPeopleButton: string;
    participantListRemoveParticipantButton: string;
    sendboxTextField: string;
    typingIndicator: string;
    verticalGalleryPageCounter: string;
    verticalGalleryVideoTile: string;
    videoGallery: string;
    videoTile: string;
}

// @beta
export const ImageOverlay: (props: ImageOverlayProps) => JSX.Element;

// @beta
export interface ImageOverlayProps {
    altText?: string;
    imageSrc: string;
    isOpen: boolean;
    onDismiss: () => void;
    onDownloadButtonClicked?: (imageSrc: string) => void;
    title?: string;
    titleIcon?: JSX.Element;
}

// @public
export interface ImageOverlayStrings {
    dismissButtonAriaLabel: string;
    downloadButtonLabel: string;
}

// @beta
export const imageOverlayTheme: PartialTheme;

// @beta
export interface InlineImage {
    imgAttrs: React_2.ImgHTMLAttributes<HTMLImageElement>;
    messageId: string;
}

// @beta
export interface InlineImageOptions {
    onRenderInlineImage?: (inlineImage: InlineImage, defaultOnRender: (inlineImage: InlineImage) => JSX.Element) => JSX.Element;
}

// @internal
export type _IssueCategory = 'overallRating' | 'audioRating' | 'videoRating' | 'screenshareRating';

// @public
export interface JumpToNewMessageButtonProps {
    onClick: () => void;
    text: string;
}

// @public
export const lightTheme: PartialTheme & CallingTheme;

// @public
export type LoadingState = 'loading' | 'none';

// @public
export const LocalizationProvider: (props: LocalizationProviderProps) => JSX.Element;

// @public
export type LocalizationProviderProps = {
    locale: ComponentLocale;
    children: React_2.ReactNode;
};

// Warning: (ae-internal-missing-underscore) The name "LocalVideoCameraCycleButton" should be prefixed with an underscore because the declaration is marked as @internal
//
// @internal
export const LocalVideoCameraCycleButton: (props: LocalVideoCameraCycleButtonProps) => JSX.Element;

// @public (undocumented)
export interface LocalVideoCameraCycleButtonProps {
    ariaDescription?: string;
    cameras?: OptionsDevice[];
    label?: string;
    onSelectCamera?: (device: OptionsDevice) => Promise<void>;
    selectedCamera?: OptionsDevice;
    size?: 'small' | 'large';
}

// @internal
export const _LocalVideoTile: React_2.MemoExoticComponent<(props: {
    userId?: string | undefined;
    onCreateLocalStreamView?: ((options?: VideoStreamOptions) => Promise<void | CreateVideoStreamViewResult>) | undefined;
    onDisposeLocalStreamView?: (() => void) | undefined;
    isAvailable?: boolean | undefined;
    isMuted?: boolean | undefined;
    renderElement?: HTMLElement | undefined;
    displayName?: string | undefined;
    initialsName?: string | undefined;
    localVideoViewOptions?: VideoStreamOptions | undefined;
    onRenderAvatar?: OnRenderAvatarCallback | undefined;
    showLabel: boolean;
    showMuteIndicator?: boolean | undefined;
    showCameraSwitcherInLocalPreview?: boolean | undefined;
    localVideoCameraCycleButtonProps?: LocalVideoCameraCycleButtonProps | undefined;
    localVideoCameraSwitcherLabel?: string | undefined;
    localVideoSelectedDescription?: string | undefined;
    styles?: VideoTileStylesProps | undefined;
    personaMinSize?: number | undefined;
    raisedHand?: RaisedHand | undefined;
    reaction?: Reaction | undefined;
    spotlightedParticipantUserIds?: string[] | undefined;
    isSpotlighted?: boolean | undefined;
    onStartSpotlight?: (() => void) | undefined;
    onStopSpotlight?: (() => void) | undefined;
    maxParticipantsToSpotlight?: number | undefined;
    menuKind?: "contextual" | "drawer" | undefined;
    drawerMenuHostId?: string | undefined;
    strings?: VideoGalleryStrings | undefined;
    reactionResources?: ReactionResources | undefined;
}) => React_2.JSX.Element>;

// @public
export type LocalVideoTileSize = '9:16' | '16:9' | 'hidden' | 'followDeviceOrientation';

// @public
export type LongPressTrigger = 'mouseAndTouch' | 'touch';

// @beta
export interface Mention {
    displayText: string;
    icon?: JSX.Element;
    id: string;
}

// @beta
export interface MentionDisplayOptions {
    onRenderMention?: (mention: Mention, defaultOnRender: (mention: Mention) => JSX.Element) => JSX.Element;
}

// @beta
export interface MentionLookupOptions {
    onQueryUpdated: (query: string) => Promise<Mention[]>;
    onRenderSuggestionItem?: (suggestion: Mention, onSuggestionSelected: (suggestion: Mention) => void, isActive: boolean) => JSX.Element;
    trigger?: string;
}

// @beta
export type MentionOptions = {
    lookupOptions?: MentionLookupOptions;
    displayOptions?: MentionDisplayOptions;
};

// @internal
export const _MentionPopover: (props: _MentionPopoverProps) => JSX.Element;

// @internal
export interface _MentionPopoverProps {
    activeSuggestionIndex?: number;
    location?: 'above' | 'below';
    onDismiss?: () => void;
    onRenderSuggestionItem?: (suggestion: Mention, onSuggestionSelected: (suggestion: Mention) => void, isActive: boolean) => JSX.Element;
    onSuggestionSelected: (suggestion: Mention) => void;
    suggestions: Mention[];
    target: React_2.RefObject<Element>;
    targetPositionOffset?: {
        top: number;
        left: number;
    };
    title?: string;
}

// @beta
export interface MentionPopoverStrings {
    mentionPopoverHeader: string;
}

// @public
export type Message = ChatMessage | SystemMessage | CustomMessage | /* @conditional-compile-remove(data-loss-prevention) */ BlockedMessage;

// @public
export type MessageAttachedStatus = 'bottom' | 'top' | boolean;

// @public
export interface MessageCommon {
    // (undocumented)
    createdOn: Date;
    // (undocumented)
    messageId: string;
}

// @public
export type MessageContentType = 'text' | 'html' | 'richtext/html' | 'unknown';

// @public
export type MessageProps = {
    message: Message;
    strings: MessageThreadStrings;
    messageContainerStyle?: ComponentSlotStyle;
    showDate?: boolean;
    disableEditing?: boolean;
    onUpdateMessage?: UpdateMessageCallback;
    onCancelEditMessage?: CancelEditCallback;
    onDeleteMessage?: (messageId: string) => Promise<void>;
    onSendMessage?: (messageId: string) => Promise<void>;
};

// @public
export type MessageRenderer = (props: MessageProps) => JSX.Element;

// @public
export const MessageStatusIndicator: (props: MessageStatusIndicatorProps) => JSX.Element;

// @public
export interface MessageStatusIndicatorProps {
    // (undocumented)
    onToggleToolTip?: (isToggled: boolean) => void;
    // (undocumented)
    readCount?: number;
    remoteParticipantsCount?: number;
    status?: MessageStatus;
    strings?: MessageStatusIndicatorStrings;
    styles?: BaseCustomStyles;
}

// @public
export interface MessageStatusIndicatorStrings {
    deliveredAriaLabel?: string;
    deliveredTooltipText: string;
    failedToSendAriaLabel?: string;
    failedToSendTooltipText: string;
    readByTooltipText?: string;
    seenAriaLabel?: string;
    seenTooltipText: string;
    sendingAriaLabel?: string;
    sendingTooltipText: string;
}

// @public
export const MessageThread: (props: MessageThreadProps) => JSX.Element;

// @public
export type MessageThreadProps = {
    userId: string;
    messages: (ChatMessage | SystemMessage | CustomMessage | /* @conditional-compile-remove(data-loss-prevention) */ BlockedMessage)[];
    participantCount?: number;
    readReceiptsBySenderId?: ReadReceiptsBySenderId;
    styles?: MessageThreadStyles;
    disableJumpToNewMessageButton?: boolean;
    showMessageDate?: boolean;
    showMessageStatus?: boolean;
    numberOfChatMessagesToReload?: number;
    onMessageSeen?: (messageId: string) => Promise<void>;
    onRenderMessageStatus?: (messageStatusIndicatorProps: MessageStatusIndicatorProps) => JSX.Element | null;
    onRenderAvatar?: OnRenderAvatarCallback;
    onRenderJumpToNewMessageButton?: (newMessageButtonProps: JumpToNewMessageButtonProps) => JSX.Element;
    onLoadPreviousChatMessages?: (messagesToLoad: number) => Promise<boolean>;
    onRenderMessage?: (messageProps: MessageProps, messageRenderer?: MessageRenderer) => JSX.Element;
    onRenderFileDownloads?: (userId: string, message: ChatMessage) => JSX.Element;
    onUpdateMessage?: UpdateMessageCallback;
    onCancelEditMessage?: CancelEditCallback;
    onDeleteMessage?: (messageId: string) => Promise<void>;
    onSendMessage?: (content: string) => Promise<void>;
    disableEditing?: boolean;
    strings?: Partial<MessageThreadStrings>;
    fileDownloadHandler?: FileDownloadHandler;
    onDisplayDateTimeString?: (messageDate: Date) => string;
    mentionOptions?: MentionOptions;
    inlineImageOptions?: InlineImageOptions;
};

// @public
export interface MessageThreadStrings {
    actionMenuMoreOptions?: string;
    blockedWarningLinkText: string;
    blockedWarningText: string;
    downloadFile: string;
    editBoxCancelButton: string;
    editBoxPlaceholderText: string;
    editBoxSubmitButton: string;
    editBoxTextLimit: string;
    editedTag: string;
    editMessage: string;
    failToSendTag?: string;
    fileCardGroupMessage: string;
    friday: string;
    liveAuthorIntro: string;
    messageContentAriaText: string;
    messageContentMineAriaText: string;
    messageDeletedAnnouncementAriaLabel: string;
    messageReadCount?: string;
    monday: string;
    newMessagesIndicator: string;
    noDisplayNameSub: string;
    participantJoined: string;
    participantLeft: string;
    removeMessage: string;
    resendMessage?: string;
    saturday: string;
    sunday: string;
    thursday: string;
    tuesday: string;
    wednesday: string;
    yesterday: string;
}

// @public
export interface MessageThreadStyles extends BaseCustomStyles {
    blockedMessageContainer?: ComponentSlotStyle;
    chatContainer?: ComponentSlotStyle;
    chatItemMessageContainer?: ComponentSlotStyle;
    chatMessageContainer?: ComponentSlotStyle;
    failedMyChatMessageContainer?: ComponentSlotStyle;
    loadPreviousMessagesButtonContainer?: IStyle;
    messageStatusContainer?: (mine: boolean) => IStyle;
    myChatItemMessageContainer?: ComponentSlotStyle;
    myChatMessageContainer?: ComponentSlotStyle;
    newMessageButtonContainer?: IStyle;
    systemMessageContainer?: ComponentSlotStyle;
}

// @public
export const MicrophoneButton: (props: MicrophoneButtonProps) => JSX.Element;

// @public
export interface MicrophoneButtonContextualMenuStyles extends IContextualMenuStyles {
    menuItemStyles?: IContextualMenuItemStyles;
}

// @public
export interface MicrophoneButtonProps extends ControlBarButtonProps {
    enableDeviceSelectionMenu?: boolean;
    microphones?: OptionsDevice[];
    onSelectMicrophone?: (device: OptionsDevice) => Promise<void>;
    onSelectSpeaker?: (device: OptionsDevice) => Promise<void>;
    onToggleMicrophone?: () => Promise<void>;
    selectedMicrophone?: OptionsDevice;
    selectedSpeaker?: OptionsDevice;
    speakers?: OptionsDevice[];
    strings?: Partial<MicrophoneButtonStrings>;
    styles?: Partial<MicrophoneButtonStyles>;
}

// @public
export interface MicrophoneButtonStrings {
    microphoneActionTurnedOffAnnouncement?: string;
    microphoneActionTurnedOnAnnouncement?: string;
    microphoneButtonSplitRoleDescription?: string;
    microphoneMenuTitle?: string;
    microphoneMenuTooltip?: string;
    microphonePrimaryActionSplitButtonTitle?: string;
    offLabel: string;
    offSplitButtonAriaLabel?: string;
    offSplitButtonMicrophonePrimaryAction?: string;
    onLabel: string;
    onSplitButtonAriaLabel?: string;
    onSplitButtonMicrophonePrimaryAction?: string;
    speakerMenuTitle?: string;
    speakerMenuTooltip?: string;
    tooltipDisabledContent?: string;
    tooltipOffContent?: string;
    tooltipOnContent?: string;
}

// @public
export interface MicrophoneButtonStyles extends ControlBarButtonStyles {
    menuStyles?: Partial<MicrophoneButtonContextualMenuStyles>;
}

// @beta
export const MicrophoneSitePermissions: (props: MicrophoneSitePermissionsProps) => JSX.Element;

// @beta
export interface MicrophoneSitePermissionsProps extends CommonSitePermissionsProps {
    microphoneIconName?: string;
    strings?: MicrophoneSitePermissionsStrings;
}

// @beta
export type MicrophoneSitePermissionsStrings = SitePermissionsStrings;

// @internal (undocumented)
export const _ModalClone: React_3.FunctionComponent<_ExtendedIModalProps>;

// @public
export type OnRenderAvatarCallback = (
userId?: string, options?: CustomAvatarOptions,
defaultOnRender?: (props: CustomAvatarOptions) => JSX.Element) => JSX.Element;

// @public
export interface OptionsDevice {
    id: string;
    name: string;
}

// @internal
export type _OverallIssue = 'CallCannotJoin' | 'CallCannotInvite' | 'HadToRejoin' | 'CallEndedUnexpectedly' | 'OtherIssues';

// @public
export type OverflowGalleryPosition = 'horizontalBottom' | 'verticalRight' | 'horizontalTop';

// @public
export interface ParticipantAddedSystemMessage extends SystemMessageCommon {
    // (undocumented)
    participants: CommunicationParticipant[];
    // (undocumented)
    systemMessageType: 'participantAdded';
}

// @public
export const ParticipantItem: (props: ParticipantItemProps) => JSX.Element;

// @public
export interface ParticipantItemProps {
    ariaLabelledBy?: string;
    displayName?: string;
    me?: boolean;
    menuItems?: IContextualMenuItem[];
    onClick?: (props?: ParticipantItemProps) => void;
    onRenderAvatar?: OnRenderAvatarCallback;
    onRenderIcon?: (props?: ParticipantItemProps) => JSX.Element | null;
    participantState?: ParticipantState;
    presence?: PersonaPresence;
    showParticipantOverflowTooltip?: boolean;
    strings?: Partial<ParticipantItemStrings>;
    styles?: ParticipantItemStyles;
    userId?: string;
}

// @public
export interface ParticipantItemStrings {
    attendeeRole: string;
    displayNamePlaceholder?: string;
    isMeText: string;
    menuTitle: string;
    mutedIconLabel: string;
    participantStateHold?: string;
    participantStateRinging?: string;
    removeButtonLabel: string;
    sharingIconLabel: string;
}

// @public
export interface ParticipantItemStyles extends BaseCustomStyles {
    avatar?: IStyle;
    iconContainer?: IStyle;
    me?: IStyle;
    menu?: IStyle;
}

// @public
export const ParticipantList: (props: ParticipantListProps) => JSX.Element;

// @public
export interface ParticipantListItemStyles extends ParticipantItemStyles {
    participantSubMenuItemsStyles?: IContextualMenuItemStyles;
}

// @public
export type ParticipantListParticipant = CommunicationParticipant & {
    isRemovable: boolean;
};

// @public
export type ParticipantListProps = {
    participants: ParticipantListParticipant[];
    myUserId?: string;
    excludeMe?: boolean;
    onRenderParticipant?: (participant: ParticipantListParticipant) => JSX.Element | null;
    onRenderAvatar?: OnRenderAvatarCallback;
    onRemoveParticipant?: (userId: string) => void;
    onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;
    onParticipantClick?: (participant?: ParticipantListParticipant) => void;
    styles?: ParticipantListStyles;
    showParticipantOverflowTooltip?: boolean;
    totalParticipantCount?: number;
    strings?: ParticipantListStrings;
    participantAriaLabelledBy?: string;
};

// @beta
export interface ParticipantListStrings {
    overflowParticipantCount?: string;
}

// @public
export interface ParticipantListStyles extends BaseCustomStyles {
    participantItemStyles?: ParticipantListItemStyles;
}

// @public
export type ParticipantMenuItemsCallback = (participantUserId: string, userId?: string, defaultMenuItems?: IContextualMenuItem[]) => IContextualMenuItem[];

// @public
export interface ParticipantRemovedSystemMessage extends SystemMessageCommon {
    // (undocumented)
    participants: CommunicationParticipant[];
    // (undocumented)
    systemMessageType: 'participantRemoved';
}

// @public
export const ParticipantsButton: (props: ParticipantsButtonProps) => JSX.Element;

// @public
export interface ParticipantsButtonContextualMenuStyles extends IContextualMenuStyles {
    menuItemStyles?: IContextualMenuItemStyles;
    participantListStyles?: ParticipantListStyles;
}

// @public
export interface ParticipantsButtonProps extends ControlBarButtonProps {
    callInvitationURL?: string;
    excludeMe?: boolean;
    myUserId?: string;
    onFetchParticipantMenuItems?: ParticipantMenuItemsCallback;
    onMuteAll?: () => void;
    onRemoveParticipant?: (userId: string) => void;
    onRenderAvatar?: OnRenderAvatarCallback;
    onRenderParticipant?: (participant: CommunicationParticipant) => JSX.Element | null;
    onRenderParticipantList?: (props: ParticipantListProps) => JSX.Element | null;
    participants: ParticipantListParticipant[];
    showParticipantOverflowTooltip?: boolean;
    strings?: Partial<ParticipantsButtonStrings>;
    styles?: ParticipantsButtonStyles;
}

// @public
export interface ParticipantsButtonStrings {
    copyInviteLinkActionedAriaLabel: string;
    copyInviteLinkButtonLabel: string;
    label: string;
    menuHeader: string;
    muteAllButtonLabel: string;
    participantsListButtonLabel: string;
    tooltipContent?: string;
}

// @public
export interface ParticipantsButtonStyles extends ControlBarButtonStyles {
    menuStyles?: Partial<ParticipantsButtonContextualMenuStyles>;
}

// @public
export type ParticipantState = 'Idle' | 'Connecting' | 'Ringing' | 'Connected' | 'Hold' | 'InLobby' | 'EarlyMedia' | 'Disconnected';

// @internal
export type _PermissionConstraints = {
    audio: boolean;
    video: boolean;
};

// @internal
export const _PictureInPictureInPicture: (props: _PictureInPictureInPictureProps) => JSX.Element;

// @internal
export interface _PictureInPictureInPictureProps {
    onClick?: () => void;
    // (undocumented)
    primaryTile: _PictureInPictureInPictureTileProps;
    // (undocumented)
    secondaryTile?: _PictureInPictureInPictureTileProps;
    // (undocumented)
    strings: _PictureInPictureInPictureStrings;
}

// @internal
export interface _PictureInPictureInPictureStrings {
    rootAriaLabel: string;
}

// @internal (undocumented)
export type _PictureInPictureInPictureTileProps = PropsWithChildren<{
    orientation: _TileOrientation;
}>;

// @public
export type RaisedHand = {
    raisedHandOrderPosition: number;
};

// @public
export const RaiseHandButton: (props: RaiseHandButtonProps) => JSX.Element;

// @public
export interface RaiseHandButtonProps extends ControlBarButtonProps {
    onToggleRaiseHand?: () => Promise<void>;
    strings?: Partial<RaiseHandButtonStrings>;
}

// @public
export interface RaiseHandButtonStrings {
    offLabel: string;
    onLabel: string;
    tooltipDisabledContent?: string;
    tooltipOffContent?: string;
    tooltipOnContent?: string;
}

// @internal
export interface _RatingScale {
    lowerBound: number;
    lowScoreThreshold: number;
    upperBound: number;
}

// @beta
export type Reaction = {
    reactionType: string;
    receivedOn: Date;
};

// @beta
export const ReactionButton: (props: ReactionButtonProps) => JSX.Element;

// @beta
export interface ReactionButtonProps extends ControlBarButtonProps {
    onReactionClick: (reaction: string) => Promise<void>;
    reactionResources: ReactionResources;
    strings?: Partial<ReactionButtonStrings>;
}

// @beta
export interface ReactionButtonStrings {
    applauseReactionTooltipContent?: string;
    heartReactionTooltipContent?: string;
    label: string;
    laughReactionTooltipContent?: string;
    likeReactionTooltipContent?: string;
    surprisedReactionTooltipContent?: string;
    tooltipContent?: string;
    tooltipDisabledContent?: string;
}

// @beta
export interface ReactionResources {
    applauseReaction?: ReactionSprite;
    heartReaction?: ReactionSprite;
    laughReaction?: ReactionSprite;
    likeReaction?: ReactionSprite;
    surprisedReaction?: ReactionSprite;
}

// @beta
export type ReactionSprite = {
    url: string;
    frameCount: number;
    size?: number;
};

// @public
export type ReadReceiptsBySenderId = {
    [key: string]: {
        lastReadMessage: string;
        displayName: string;
    };
};

// @internal
export const _RemoteVideoTile: React_2.MemoExoticComponent<(props: {
    userId: string;
    remoteParticipant: VideoGalleryRemoteParticipant;
    onCreateRemoteStreamView?: ((userId: string, options?: VideoStreamOptions) => Promise<void | CreateVideoStreamViewResult>) | undefined;
    onDisposeRemoteStreamView?: ((userId: string) => Promise<void>) | undefined;
    isAvailable?: boolean | undefined;
    isReceiving?: boolean | undefined;
    isScreenSharingOn?: boolean | undefined;
    renderElement?: HTMLElement | undefined;
    remoteVideoViewOptions?: VideoStreamOptions | undefined;
    onRenderAvatar?: OnRenderAvatarCallback | undefined;
    showMuteIndicator?: boolean | undefined;
    showLabel?: boolean | undefined;
    personaMinSize?: number | undefined;
    strings: VideoGalleryStrings;
    participantState?: ParticipantState | undefined;
    menuKind?: "contextual" | "drawer" | undefined;
    drawerMenuHostId?: string | undefined;
    onPinParticipant?: ((userId: string) => void) | undefined;
    onUnpinParticipant?: ((userId: string) => void) | undefined;
    onUpdateScalingMode?: ((userId: string, scalingMode: ViewScalingMode) => void) | undefined;
    isPinned?: boolean | undefined;
    spotlightedParticipantUserIds?: string[] | undefined;
    isSpotlighted?: boolean | undefined;
    onStartSpotlight?: ((userIds: string[]) => void) | undefined;
    onStopSpotlight?: ((userIds: string[]) => void) | undefined;
    maxParticipantsToSpotlight?: number | undefined;
    disablePinMenuItem?: boolean | undefined;
    toggleAnnouncerString?: ((announcerString: string) => void) | undefined;
    reactionResources?: ReactionResources | undefined;
}) => React_2.JSX.Element>;

// @beta
export const RichTextSendBox: (props: RichTextSendBoxProps) => JSX.Element;

// @beta
export interface RichTextSendBoxProps {
    activeFileUploads?: ActiveFileUpload[];
    disabled?: boolean;
    onCancelFileUpload?: (fileId: string) => void;
    onRenderFileUploads?: () => JSX.Element;
    onSendMessage: (content: string) => Promise<void>;
    strings?: Partial<RichTextSendBoxStrings>;
    systemMessage?: string;
}

// @beta
export interface RichTextSendBoxStrings extends SendBoxStrings {
    boldTooltip: string;
    bulletListTooltip: string;
    decreaseIndentTooltip: string;
    increaseIndentTooltip: string;
    italicTooltip: string;
    numberListTooltip: string;
    underlineTooltip: string;
}

// @public
export const ScreenShareButton: (props: ScreenShareButtonProps) => JSX.Element;

// @public
export interface ScreenShareButtonProps extends ControlBarButtonProps {
    onToggleScreenShare?: () => Promise<void>;
    strings?: Partial<ScreenShareButtonStrings>;
}

// @public
export interface ScreenShareButtonStrings {
    offLabel: string;
    onLabel: string;
    tooltipDisabledContent?: string;
    tooltipOffContent?: string;
    tooltipOnContent?: string;
}

// @internal
export type _ScreenshareIssue = 'NoContentLocal' | 'NoContentRemote' | 'CannotPresent' | 'LowQuality' | 'Freezes' | 'StoppedUnexpectedly' | 'LargeDelay' | 'OtherIssues';

// @public
export const SendBox: (props: SendBoxProps) => JSX.Element;

// @beta
export interface SendBoxErrorBarError {
    message: string;
    timestamp: number;
}

// @public
export interface SendBoxProps {
    // @beta
    activeFileUploads?: ActiveFileUpload[];
    autoFocus?: 'sendBoxTextField';
    disabled?: boolean;
    // @beta
    mentionLookupOptions?: MentionLookupOptions;
    // @beta
    onCancelFileUpload?: (fileId: string) => void;
    // @beta
    onRenderFileUploads?: () => JSX.Element;
    onRenderIcon?: (isHover: boolean) => JSX.Element;
    onRenderSystemMessage?: (systemMessage: string | undefined) => React_2.ReactElement;
    onSendMessage?: (content: string) => Promise<void>;
    onTyping?: () => Promise<void>;
    strings?: Partial<SendBoxStrings>;
    styles?: SendBoxStylesProps;
    supportNewline?: boolean;
    systemMessage?: string;
}

// @public
export interface SendBoxStrings {
    fileUploadsPendingError: string;
    placeholderText: string;
    removeFile: string;
    sendButtonAriaLabel: string;
    textTooLong: string;
    uploadCompleted: string;
    uploading: string;
}

// @public
export interface SendBoxStylesProps extends BaseCustomStyles {
    sendMessageIcon?: IStyle;
    sendMessageIconContainer?: IStyle;
    systemMessage?: IStyle;
    textField?: IStyle;
    textFieldContainer?: IStyle;
}

// @beta
export type SitePermissionsStrings = {
    primaryText?: string;
    secondaryText?: string;
    linkText?: string;
    primaryButtonText?: string;
    ariaLabel?: string;
};

// @beta
export interface SitePermissionsStyles extends BaseCustomStyles {
    primaryButton?: IButtonStyles;
    troubleshootingLink?: ILinkStyles;
}

// @public
export interface SpokenLanguageStrings {
    // (undocumented)
    'ar-ae': string;
    // (undocumented)
    'ar-sa': string;
    // (undocumented)
    'cs-cz': string;
    // (undocumented)
    'cy-gb': string;
    // (undocumented)
    'da-dk': string;
    // (undocumented)
    'de-de': string;
    // (undocumented)
    'el-gr': string;
    // (undocumented)
    'en-au': string;
    // (undocumented)
    'en-ca': string;
    // (undocumented)
    'en-gb': string;
    // (undocumented)
    'en-in': string;
    // (undocumented)
    'en-nz': string;
    // (undocumented)
    'en-us': string;
    // (undocumented)
    'es-es': string;
    // (undocumented)
    'es-mx': string;
    // (undocumented)
    'fi-fi': string;
    // (undocumented)
    'fr-ca': string;
    // (undocumented)
    'fr-fr': string;
    // (undocumented)
    'he-il': string;
    // (undocumented)
    'hi-in': string;
    // (undocumented)
    'hu-hu': string;
    // (undocumented)
    'it-it': string;
    // (undocumented)
    'ja-jp': string;
    // (undocumented)
    'ko-kr': string;
    // (undocumented)
    'nb-no': string;
    // (undocumented)
    'nl-be': string;
    // (undocumented)
    'nl-nl': string;
    // (undocumented)
    'pl-pl': string;
    // (undocumented)
    'pt-br': string;
    // (undocumented)
    'pt-pt': string;
    // (undocumented)
    'ro-ro': string;
    // (undocumented)
    'ru-ru': string;
    // (undocumented)
    'sk-sk': string;
    // (undocumented)
    'sv-se': string;
    // (undocumented)
    'th-th': string;
    // (undocumented)
    'tr-tr': string;
    // (undocumented)
    'uk-ua': string;
    // (undocumented)
    'vi-vn': string;
    // (undocumented)
    'zh-cn': string;
    // (undocumented)
    'zh-hk': string;
    // (undocumented)
    'zh-tw': string;
}

// @internal
export const _spokenLanguageToCaptionLanguage: {
    'ar-ae': string;
    'ar-sa': string;
    'da-dk': string;
    'de-de': string;
    'en-au': string;
    'en-ca': string;
    'en-gb': string;
    'en-in': string;
    'en-nz': string;
    'en-us': string;
    'es-es': string;
    'es-mx': string;
    'fi-fi': string;
    'fr-ca': string;
    'fr-fr': string;
    'hi-in': string;
    'it-it': string;
    'ja-jp': string;
    'ko-kr': string;
    'nb-no': string;
    'nl-be': string;
    'nl-nl': string;
    'pl-pl': string;
    'pt-br': string;
    'ru-ru': string;
    'sv-se': string;
    'zh-cn': string;
    'zh-hk': string;
    'cs-cz': string;
    'pt-pt': string;
    'tr-tr': string;
    'vi-vn': string;
    'th-th': string;
    'he-il': string;
    'cy-gb': string;
    'uk-ua': string;
    'el-gr': string;
    'hu-hu': string;
    'ro-ro': string;
    'sk-sk': string;
    'zh-tw': string;
};

// @beta
export type Spotlight = {
    spotlightedOrderPosition?: number;
};

// @internal
export const _StarSurvey: (props: _StarSurveyProps) => JSX.Element;

// @internal
export interface _StarSurveyProps {
    onStarRatingSelected?: (ratings: number) => void;
    selectedIcon?: string;
    strings?: _StarSurveyStrings;
    unselectedIcon?: string;
}

// @internal
export interface _StarSurveyStrings {
    starRatingAriaLabel?: string;
    starSurveyFiveStarText?: string;
    starSurveyFourStarText?: string;
    starSurveyHelperText?: string;
    starSurveyOneStarText?: string;
    starSurveyThreeStarText?: string;
    starSurveyTwoStarText?: string;
}

// @internal
export const _StartCaptionsButton: (props: _StartCaptionsButtonProps) => JSX.Element;

// @internal (undocumented)
export interface _StartCaptionsButtonProps extends ControlBarButtonProps {
    currentSpokenLanguage: string;
    onSetSpokenLanguage: (language: string) => Promise<void>;
    onStartCaptions: (options?: _captionsOptions) => Promise<void>;
    onStopCaptions: () => Promise<void>;
    strings?: _StartCaptionsButtonStrings;
}

// @internal
export interface _StartCaptionsButtonStrings {
    offLabel: string;
    onLabel: string;
    tooltipOffContent: string;
    tooltipOnContent: string;
}

// @public
export const StreamMedia: (props: StreamMediaProps) => JSX.Element;

// @public
export interface StreamMediaProps {
    isMirrored?: boolean;
    loadingState?: LoadingState;
    styles?: BaseCustomStyles;
    videoStreamElement: HTMLElement | null;
}

// @internal (undocumented)
export type _SupportedCaptionLanguage = keyof CaptionLanguageStrings;

// @internal (undocumented)
export type _SupportedSpokenLanguage = keyof SpokenLanguageStrings;

// @beta
export interface SurveyIssues {
    // (undocumented)
    audioRating: {
        noLocalAudio: string;
        noRemoteAudio: string;
        echo: string;
        audioNoise: string;
        lowVolume: string;
        audioStoppedUnexpectedly: string;
        distortedSpeech: string;
        audioInterruption: string;
        otherIssues: string;
    };
    // (undocumented)
    overallRating: {
        callCannotJoin: string;
        callCannotInvite: string;
        hadToRejoin: string;
        callEndedUnexpectedly: string;
        otherIssues: string;
    };
    // (undocumented)
    screenshareRating: {
        noContentLocal: string;
        noContentRemote: string;
        cannotPresent: string;
        lowQuality: string;
        freezes: string;
        stoppedUnexpectedly: string;
        largeDelay: string;
        otherIssues: string;
    };
    // (undocumented)
    videoRating: {
        noVideoReceived: string;
        noVideoSent: string;
        lowQuality: string;
        freezes: string;
        stoppedUnexpectedly: string;
        darkVideoReceived: string;
        audioVideoOutOfSync: string;
        otherIssues: string;
    };
}

// @beta
export interface SurveyIssuesHeadingStrings {
    // (undocumented)
    audioRating: string;
    // (undocumented)
    overallRating: string;
    // (undocumented)
    screenshareRating: string;
    // (undocumented)
    videoRating: string;
}

// @internal
export type _SurveyTag = Record<_IssueCategory, {
    message: string;
    issue: _AudioIssue | _OverallIssue | _ScreenshareIssue | _VideoIssue;
}[]>;

// @public
export type SystemMessage = ParticipantAddedSystemMessage | ParticipantRemovedSystemMessage | TopicUpdatedSystemMessage | ContentSystemMessage;

// @public
export interface SystemMessageCommon extends MessageCommon {
    // (undocumented)
    iconName: string;
    // (undocumented)
    messageType: 'system';
}

// @internal
export const _TagsSurvey: (props: _TagsSurveyProps) => JSX.Element;

// @internal
export interface _TagsSurveyProps {
    callIssuesToTag: SurveyIssues;
    categoryHeadings: SurveyIssuesHeadingStrings;
    onConfirm?: (selectedTags: _CallSurvey, improvementSuggestions?: CallSurveyImprovementSuggestions) => void;
    showFreeFormTextField?: boolean;
    strings?: _TagsSurveyStrings;
}

// @internal
export interface _TagsSurveyStrings {
    tagsSurveyHelperText?: string;
    tagsSurveyQuestion?: string;
    tagsSurveyTextFieldDefaultText?: string;
}

// @internal (undocumented)
export type _TileOrientation = 'portrait' | 'landscape';

// @public
export interface TopicUpdatedSystemMessage extends SystemMessageCommon {
    // (undocumented)
    systemMessageType: 'topicUpdated';
    // (undocumented)
    topic: string;
}

// @internal
export const _TroubleshootingGuideErrorBar: (props: _TroubleshootingGuideErrorBarProps) => JSX.Element;

// @internal
export interface _TroubleshootingGuideErrorBarProps extends ErrorBarProps {
    onNetworkingTroubleshootingClick?: () => void;
    onPermissionsTroubleshootingClick?: (permissionsState: {
        camera: PermissionState;
        microphone: PermissionState;
    }) => void;
    permissionsState?: {
        camera: PermissionState;
        microphone: PermissionState;
    };
    troubleshootingGuideStrings: _TroubleshootingGuideErrorBarStrings;
}

// @internal
export interface _TroubleshootingGuideErrorBarStrings {
    // (undocumented)
    devicePermissionLinkText?: string;
    // (undocumented)
    dismissButtonText?: string;
    // (undocumented)
    networkTroubleshootingLinkText?: string;
}

// @public
export const TypingIndicator: (props: TypingIndicatorProps) => JSX.Element;

// @public
export interface TypingIndicatorProps {
    onRenderUser?: (users: CommunicationParticipant) => JSX.Element;
    strings?: Partial<TypingIndicatorStrings>;
    styles?: TypingIndicatorStylesProps;
    typingUsers: CommunicationParticipant[];
}

// @public
export interface TypingIndicatorStrings {
    delimiter: string;
    multipleUsers: string;
    multipleUsersAbbreviateMany: string;
    multipleUsersAbbreviateOne: string;
    singleUser: string;
}

// @public
export interface TypingIndicatorStylesProps extends BaseCustomStyles {
    typingString?: IStyle;
    typingUserDisplayName?: IStyle;
}

// @beta
export const UnsupportedBrowser: (props: UnsupportedBrowserProps) => JSX.Element;

// @beta
export interface UnsupportedBrowserProps {
    onTroubleshootingClick?: () => void;
    strings?: UnsupportedBrowserStrings;
}

// @beta
export interface UnsupportedBrowserStrings {
    moreHelpLinkText: string;
    primaryText: string;
    secondaryText: string;
}

// @beta
export const UnsupportedBrowserVersion: (props: UnsupportedBrowserVersionProps) => JSX.Element;

// @beta
export interface UnsupportedBrowserVersionProps {
    onContinueAnywayClick?: () => void;
    onTroubleshootingClick?: () => void;
    strings?: UnsupportedBrowserVersionStrings;
}

// @beta
export interface UnsupportedBrowserVersionStrings {
    continueAnywayButtonText?: string;
    moreHelpLinkText: string;
    primaryText: string;
    secondaryText: string;
}

// @beta
export const UnsupportedOperatingSystem: (props: UnsupportedOperatingSystemProps) => JSX.Element;

// @beta
export interface UnsupportedOperatingSystemProps {
    onTroubleshootingClick?: () => void;
    strings?: UnsupportedOperatingSystemStrings;
}

// @beta
export interface UnsupportedOperatingSystemStrings {
    moreHelpLinkText: string;
    primaryText: string;
    secondaryText: string;
}

// @public
export type UpdateMessageCallback = (messageId: string, content: string, options?: {
    metadata?: Record<string, string>;
    attachmentMetadata?: AttachmentMetadata[];
}) => Promise<void>;

// @internal
export const _useContainerHeight: (containerRef: RefObject<HTMLElement>) => number | undefined;

// @internal
export const _useContainerWidth: (containerRef: RefObject<HTMLElement>) => number | undefined;

// @public
export const useTheme: () => Theme;

// @public
export interface VerticalGalleryControlBarStyles extends BaseCustomStyles {
    counter?: IStyle;
    nextButton?: IStyle;
    previousButton?: IStyle;
}

// @public
export interface VerticalGalleryStrings {
    leftNavButtonAriaLabel?: string;
    rightNavButtonAriaLabel?: string;
}

// @public
export interface VerticalGalleryStyles extends BaseCustomStyles {
    children?: IStyle;
    controlBar?: VerticalGalleryControlBarStyles;
}

// @internal
export type _VideoBackgroundEffectChoiceOption = _VideoEffectsItemProps;

// @internal
export const _VideoBackgroundEffectsPicker: (props: _VideoBackgroundEffectsPickerProps) => JSX.Element;

// @internal
export interface _VideoBackgroundEffectsPickerProps {
    defaultSelectedEffectKey?: string;
    itemsPerRow?: 'wrap' | number;
    label?: string;
    onChange?: (effectKey: string) => void;
    options: _VideoBackgroundEffectChoiceOption[];
    selectedEffectKey?: string;
    styles?: _VideoBackgroundEffectsPickerStyles;
}

// @internal
export interface _VideoBackgroundEffectsPickerStyles {
    label?: IStyle;
    root?: IStyle;
    rowRoot?: IStyle;
}

// @internal
export const _VideoEffectsItem: (props: _VideoEffectsItemProps) => JSX.Element;

// @internal
export const _VideoEffectsItemAddImage: (props: _VideoEffectsItemProps) => JSX.Element;

// @internal
export const _VideoEffectsItemBlur: (props: _VideoEffectsItemProps) => JSX.Element;

// @internal
export const _VideoEffectsItemNoBackground: (props: _VideoEffectsItemProps) => JSX.Element;

// @internal
export interface _VideoEffectsItemProps {
    ariaLabel?: string;
    backgroundProps?: {
        url: string;
    };
    disabled?: boolean;
    focusOnMount?: boolean;
    iconProps?: IIconProps;
    isSelected?: boolean;
    itemKey: string;
    onSelect?: (key: string) => void;
    styles?: _VideoEffectsItemStyles;
    title?: string;
    tooltipProps?: ITooltipHostProps;
}

// @internal
export interface _VideoEffectsItemStyles {
    iconContainer: IStyle;
    root: IStyle;
    textContainer: IStyle;
}

// @public
export const VideoGallery: (props: VideoGalleryProps) => JSX.Element;

// @public (undocumented)
export type VideoGalleryLayout = 'default' | 'floatingLocalVideo' | 'speaker' | /* @conditional-compile-remove(large-gallery) */ 'largeGallery' | 'focusedContent';

// @public
export interface VideoGalleryLocalParticipant extends VideoGalleryParticipant {
    raisedHand?: RaisedHand;
    // @beta
    reaction?: Reaction;
}

// @public
export type VideoGalleryParticipant = {
    userId: string;
    isMuted?: boolean;
    displayName?: string;
    videoStream?: VideoGalleryStream;
    isScreenSharingOn?: boolean;
    spotlight?: Spotlight;
};

// @public
export interface VideoGalleryProps {
    dominantSpeakers?: string[];
    layout?: VideoGalleryLayout;
    localParticipant: VideoGalleryLocalParticipant;
    localVideoCameraCycleButtonProps?: LocalVideoCameraCycleButtonProps;
    localVideoTileSize?: LocalVideoTileSize;
    localVideoViewOptions?: VideoStreamOptions;
    maxParticipantsToSpotlight?: number;
    maxRemoteVideoStreams?: number;
    onCreateLocalStreamView?: (options?: VideoStreamOptions) => Promise<void | CreateVideoStreamViewResult>;
    onCreateRemoteStreamView?: (userId: string, options?: VideoStreamOptions) => Promise<void | CreateVideoStreamViewResult>;
    onDisposeLocalStreamView?: () => void;
    onDisposeRemoteScreenShareStreamView?: (userId: string) => Promise<void>;
    // @deprecated (undocumented)
    onDisposeRemoteStreamView?: (userId: string) => Promise<void>;
    onDisposeRemoteVideoStreamView?: (userId: string) => Promise<void>;
    onPinParticipant?: (userId: string) => void;
    onRenderAvatar?: OnRenderAvatarCallback;
    onRenderLocalVideoTile?: (localParticipant: VideoGalleryLocalParticipant) => JSX.Element;
    onRenderRemoteVideoTile?: (remoteParticipant: VideoGalleryRemoteParticipant) => JSX.Element;
    onStartLocalSpotlight?: () => Promise<void>;
    onStartRemoteSpotlight?: (userIds?: string[]) => Promise<void>;
    onStopLocalSpotlight?: () => Promise<void>;
    onStopRemoteSpotlight?: (userIds?: string[]) => Promise<void>;
    onUnpinParticipant?: (userId: string) => void;
    overflowGalleryPosition?: OverflowGalleryPosition;
    pinnedParticipants?: string[];
    // @beta
    reactionResources?: ReactionResources;
    remoteParticipants?: VideoGalleryRemoteParticipant[];
    remoteVideoTileMenu?: false | VideoTileContextualMenuProps | VideoTileDrawerMenuProps;
    remoteVideoViewOptions?: VideoStreamOptions;
    showCameraSwitcherInLocalPreview?: boolean;
    showMuteIndicator?: boolean;
    spotlightedParticipants?: string[];
    strings?: Partial<VideoGalleryStrings>;
    styles?: VideoGalleryStyles;
}

// @public
export interface VideoGalleryRemoteParticipant extends VideoGalleryParticipant {
    isSpeaking?: boolean;
    raisedHand?: RaisedHand;
    // @beta
    reaction?: Reaction;
    screenShareStream?: VideoGalleryStream;
    // @beta
    state?: ParticipantState;
}

// @public
export interface VideoGalleryStream {
    id?: number;
    isAvailable?: boolean;
    isMirrored?: boolean;
    isReceiving?: boolean;
    renderElement?: HTMLElement;
    scalingMode?: ViewScalingMode;
    streamSize?: {
        width: number;
        height: number;
    };
}

// @public
export interface VideoGalleryStrings {
    addSpotlightVideoTileMenuLabel: string;
    attendeeRole: string;
    displayNamePlaceholder: string;
    fillRemoteParticipantFrame: string;
    fitRemoteParticipantToFrame: string;
    localVideoCameraSwitcherLabel: string;
    localVideoLabel: string;
    localVideoMovementLabel: string;
    localVideoSelectedDescription: string;
    pinnedParticipantAnnouncementAriaLabel: string;
    pinParticipantForMe: string;
    pinParticipantMenuItemAriaLabel: string;
    screenIsBeingSharedMessage: string;
    screenShareLoadingMessage: string;
    spotlightLimitReachedMenuTitle: string;
    startSpotlightVideoTileMenuLabel: string;
    stopSpotlightOnSelfVideoTileMenuLabel: string;
    stopSpotlightVideoTileMenuLabel: string;
    unpinnedParticipantAnnouncementAriaLabel: string;
    unpinParticipantForMe: string;
    unpinParticipantMenuItemAriaLabel: string;
}

// @public
export interface VideoGalleryStyles extends BaseCustomStyles {
    gridLayout?: GridLayoutStyles;
    horizontalGallery?: HorizontalGalleryStyles;
    localVideo?: IStyle;
    verticalGallery?: VerticalGalleryStyles;
}

// @internal
export type _VideoIssue = 'NoVideoReceived' | 'NoVideoSent' | 'LowQuality' | 'Freezes' | 'StoppedUnexpectedly' | 'DarkVideoReceived' | 'AudioVideoOutOfSync' | 'OtherIssues';

// @public
export interface VideoStreamOptions {
    isMirrored?: boolean;
    scalingMode?: ViewScalingMode;
}

// @public
export const VideoTile: (props: VideoTileProps) => JSX.Element;

// @public
export interface VideoTileContextualMenuProps {
    kind: 'contextual';
}

// @public
export interface VideoTileDrawerMenuProps {
    hostId?: string;
    kind: 'drawer';
}

// @public
export interface VideoTileProps {
    children?: React_2.ReactNode;
    contextualMenu?: IContextualMenuProps;
    displayName?: string;
    initialsName?: string;
    isMirrored?: boolean;
    isMuted?: boolean;
    isPinned?: boolean;
    isSpeaking?: boolean;
    isSpotlighted?: boolean;
    noVideoAvailableAriaLabel?: string;
    onLongTouch?: () => void;
    onRenderPlaceholder?: OnRenderAvatarCallback;
    participantState?: ParticipantState;
    personaMaxSize?: number;
    personaMinSize?: number;
    raisedHand?: RaisedHand;
    // @beta
    reaction?: Reaction;
    // @beta
    reactionResources?: ReactionResources;
    renderElement?: JSX.Element | null;
    showLabel?: boolean;
    showMuteIndicator?: boolean;
    // (undocumented)
    strings?: VideoTileStrings;
    styles?: VideoTileStylesProps;
    userId?: string;
}

// @beta
export interface VideoTileStrings {
    // (undocumented)
    participantStateHold: string;
    // (undocumented)
    participantStateRinging: string;
}

// @public
export interface VideoTileStylesProps extends BaseCustomStyles {
    displayNameContainer?: IStyle;
    overlayContainer?: IStyle;
    videoContainer?: IStyle;
}

// @public
export type ViewScalingMode = 'Stretch' | 'Crop' | 'Fit';

// (No @packageDocumentation comment for this package)