// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
import { CallEnd20Filled, CallMissed20Filled, CameraSwitch24Regular, Chat20Filled, Chat20Regular, Info20Filled, MicOff20Filled, Mic20Filled, Mic20Regular, People20Regular, PersonDelete20Filled, Speaker220Filled, Speaker220Regular, Video20Filled, VideoOff20Filled, WifiWarning20Filled, Circle20Regular } from '@fluentui/react-icons';
import { PersonCall20Regular, Clock20Filled } from '@fluentui/react-icons';
import { MoreHorizontal20Filled, VideoPersonStarOff20Filled } from '@fluentui/react-icons';
import { MicProhibited20Filled, VideoProhibited20Filled } from '@fluentui/react-icons';
import { Grid20Regular } from '@fluentui/react-icons';
import { PersonAdd20Regular, Call20Regular } from '@fluentui/react-icons';
import { Dialpad20Regular } from '@fluentui/react-icons';
import { DEFAULT_COMPONENT_ICONS } from "../../../../react-components/src";
import React from 'react';
import { PeopleAudience20Regular } from '@fluentui/react-icons';
// eslint-disable-next-line no-restricted-imports
import { FontIcon, Spinner, SpinnerSize } from '@fluentui/react';
import { VideoBackgroundEffect20Regular, VideoPerson20Filled } from '@fluentui/react-icons';
import { PersonSquare20Regular, WindowHeaderHorizontal20Regular, TableSimple20Regular, BoardSplit20Regular, ContentView20Regular, Table20Regular } from '@fluentui/react-icons';
const SpinnerIcon = () => React.createElement(Spinner, { size: SpinnerSize.large });
/**
 * The default set of icons used by the composites directly (i.e. not via the components defined in this library).
 *
 * @public
 */
export const COMPOSITE_ONLY_ICONS = {
    ChevronLeft: undefined,
    Link: undefined,
    LobbyScreenConnectingToCall: React.createElement(SpinnerIcon, null),
    LobbyScreenWaitingToBeAdmitted: React.createElement(SpinnerIcon, null),
    LocalDeviceSettingsCamera: React.createElement(Video20Filled, null),
    LocalDeviceSettingsMic: React.createElement(Mic20Filled, null),
    LocalDeviceSettingsSpeaker: React.createElement(Speaker220Filled, null),
    LocalPreviewPlaceholder: React.createElement(VideoOff20Filled, null),
    LocalCameraSwitch: React.createElement(CameraSwitch24Regular, null),
    ControlBarChatButtonActive: React.createElement(Chat20Filled, null),
    ControlBarChatButtonInactive: React.createElement(Chat20Regular, null),
    ControlButtonCameraProhibited: React.createElement(VideoProhibited20Filled, null),
    ControlButtonMicProhibited: React.createElement(MicProhibited20Filled, null),
    ControlButtonExitSpotlight: React.createElement(VideoPersonStarOff20Filled, null),
    ControlBarPeopleButton: React.createElement(People20Regular, null),
    MoreDrawerMicrophones: React.createElement(Mic20Regular, null),
    MoreDrawerPeople: React.createElement(People20Regular, null),
    MoreDrawerSpeakers: React.createElement(Speaker220Regular, null),
    MoreDrawerSelectedMicrophone: React.createElement(Mic20Filled, null),
    MoreDrawerSelectedSpeaker: React.createElement(Speaker220Filled, null),
    Muted: React.createElement(MicOff20Filled, null),
    NetworkReconnectIcon: React.createElement(CallMissed20Filled, null),
    NoticePageAccessDeniedTeamsMeeting: React.createElement(PersonDelete20Filled, null),
    NoticePageJoinCallFailedDueToNoNetwork: React.createElement(WifiWarning20Filled, null),
    NoticePageLeftCall: React.createElement(CallEnd20Filled, null),
    NoticePageRemovedFromCall: React.createElement(Info20Filled, null),
    NoticePageNotInvitedToRoom: React.createElement(Info20Filled, null),
    NoticePageRoomNotFound: React.createElement(Info20Filled, null),
    NoticePageRoomNotValid: React.createElement(Info20Filled, null),
    NoticePageCallRejected: React.createElement(Info20Filled, null),
    NoticePageCallTimeout: React.createElement(Info20Filled, null),
    PeoplePaneAddPerson: React.createElement(PersonAdd20Regular, null),
    PeoplePaneOpenDialpad: React.createElement(Dialpad20Regular, null),
    DialpadStartCall: React.createElement(Call20Regular, null),
    NoticePageInviteToRoomRemoved: React.createElement(Info20Filled, null),
    BlurVideoBackground: React.createElement(VideoBackgroundEffect20Regular, null),
    RemoveVideoBackgroundEffect: React.createElement(VideoPerson20Filled, null),
    GalleryOptions: React.createElement(Grid20Regular, null),
    OverflowGalleryTop: React.createElement(WindowHeaderHorizontal20Regular, null),
    SpeakerGalleryLayout: React.createElement(PersonSquare20Regular, null),
    DefaultGalleryLayout: React.createElement(TableSimple20Regular, null),
    FloatingLocalVideoGalleryLayout: React.createElement(BoardSplit20Regular, null),
    FocusedContentGalleryLayout: React.createElement(ContentView20Regular, null),
    LargeGalleryLayout: React.createElement(Table20Regular, null),
    DefaultCustomButton: React.createElement(Circle20Regular, null),
    DtmfDialpadButton: React.createElement(Dialpad20Regular, null),
    PhoneNumberButton: React.createElement(PersonCall20Regular, null),
    JoinByPhoneDialStepIcon: React.createElement(PersonCall20Regular, null),
    JoinByPhoneConferenceIdIcon: React.createElement(Dialpad20Regular, null),
    JoinByPhoneWaitToBeAdmittedIcon: React.createElement(Clock20Filled, null),
    PeoplePaneMoreButton: React.createElement(MoreHorizontal20Filled, null),
    StopAllSpotlightMenuButton: React.createElement(VideoPersonStarOff20Filled, null),
    TogetherModeLayout: React.createElement(PeopleAudience20Regular, null)
};
/**
 * The default set of icons that are available to used in the Composites.
 *
 * @public
 */
export const DEFAULT_COMPOSITE_ICONS = Object.assign(Object.assign({}, DEFAULT_COMPONENT_ICONS), COMPOSITE_ONLY_ICONS);
/**
 * Icon wrapper to use when including customizable icons inside the ChatComposite.
 * This wrapper ensures the icon name is being type-checked helping ensure no typos
 * and ensure that icon is customizable through the composite API.
 *
 * @private
 */
export const ChatCompositeIcon = (props) => React.createElement(FontIcon, Object.assign({}, props));
/**
 * Icon wrapper to use when including customizable icons inside the CallComposite.
 * This wrapper ensures the icon name is being type-checked helping ensure no typos
 * and ensure that icon is customizable through the composite API.
 *
 * @private
 */
export const CallCompositeIcon = (props) => React.createElement(FontIcon, Object.assign({}, props));
/**
 * Icon wrapper to use when including customizable icons inside the CallWithChatComposite.
 * This wrapper ensures the icon name is being type-checked helping ensure no typos
 * and ensure that icon is customizable through the composite API.
 *
 * @private
 */
export const CallWithChatCompositeIcon = (props) => React.createElement(FontIcon, Object.assign({}, props));
//# sourceMappingURL=icons.js.map