{"version":3,"sources":["../src/core.ts"],"names":[],"mappings":"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","file":"core.mjs","sourcesContent":["/* cSpell:disable */\n\n// This file was automatically generated by a tool on 04/03/2026, 7:56 PM UTC. DO NOT UPDATE MANUALLY.\n// It includes declarations for Adaptive Card features available in Teams, Copilot, Outlook, Word, Excel, PowerPoint.\n\nexport type CardElement =\n  | IContainer\n  | IActionSet\n  | IColumnSet\n  | IMedia\n  | IRichTextBlock\n  | ITable\n  | ITextBlock\n  | IFactSet\n  | IImageSet\n  | IImage\n  | ITextInput\n  | IDateInput\n  | ITimeInput\n  | INumberInput\n  | IToggleInput\n  | IChoiceSetInput\n  | IRatingInput\n  | IRating\n  | ICompoundButton\n  | IIcon\n  | ICarousel\n  | IBadge\n  | IProgressRing\n  | IProgressBar\n  | IDonutChart\n  | IPieChart\n  | IGroupedVerticalBarChart\n  | IVerticalBarChart\n  | IHorizontalBarChart\n  | IStackedHorizontalBarChart\n  | ILineChart\n  | IGaugeChart\n  | ICodeBlock\n  | IComUserMicrosoftGraphComponent\n  | IComUsersMicrosoftGraphComponent\n  | IComResourceMicrosoftGraphComponent\n  | IComFileMicrosoftGraphComponent\n  | IComEventMicrosoftGraphComponent;\n\nexport type Action =\n  | ISubmitAction\n  | IOpenUrlAction\n  | IExecuteAction\n  | IToggleVisibilityAction\n  | IShowCardAction\n  | IResetInputsAction\n  | IPopoverAction\n  | IOpenUrlDialogAction\n  | IInsertImageAction;\n\nexport type IconName =\n  | 'AccessTime'\n  | 'Accessibility'\n  | 'AccessibilityCheckmark'\n  | 'Add'\n  | 'AddCircle'\n  | 'AddSquare'\n  | 'AddSquareMultiple'\n  | 'AddSubtractCircle'\n  | 'Airplane'\n  | 'AirplaneLanding'\n  | 'AirplaneTakeOff'\n  | 'Album'\n  | 'AlbumAdd'\n  | 'Alert'\n  | 'AlertBadge'\n  | 'AlertOff'\n  | 'AlertOn'\n  | 'AlertSnooze'\n  | 'AlertUrgent'\n  | 'AlignBottom'\n  | 'AlignCenterHorizontal'\n  | 'AlignCenterVertical'\n  | 'AlignDistributeBottom'\n  | 'AlignDistributeLeft'\n  | 'AlignDistributeRight'\n  | 'AlignDistributeTop'\n  | 'AlignEndHorizontal'\n  | 'AlignEndVertical'\n  | 'AlignLeft'\n  | 'AlignRight'\n  | 'AlignSpaceAroundHorizontal'\n  | 'AlignSpaceAroundVertical'\n  | 'AlignSpaceBetweenHorizontal'\n  | 'AlignSpaceBetweenVertical'\n  | 'AlignSpaceEvenlyHorizontal'\n  | 'AlignSpaceEvenlyVertical'\n  | 'AlignSpaceFitVertical'\n  | 'AlignStartHorizontal'\n  | 'AlignStartVertical'\n  | 'AlignStraighten'\n  | 'AlignStretchHorizontal'\n  | 'AlignStretchVertical'\n  | 'AlignTop'\n  | 'AnimalCat'\n  | 'AnimalDog'\n  | 'AnimalRabbit'\n  | 'AnimalRabbitOff'\n  | 'AnimalTurtle'\n  | 'AppFolder'\n  | 'AppGeneric'\n  | 'AppRecent'\n  | 'AppStore'\n  | 'AppTitle'\n  | 'ApprovalsApp'\n  | 'Apps'\n  | 'AppsAddIn'\n  | 'AppsList'\n  | 'AppsListDetail'\n  | 'Archive'\n  | 'ArchiveArrowBack'\n  | 'ArchiveMultiple'\n  | 'ArchiveSettings'\n  | 'ArrowAutofitContent'\n  | 'ArrowAutofitDown'\n  | 'ArrowAutofitHeight'\n  | 'ArrowAutofitHeightDotted'\n  | 'ArrowAutofitHeightIn'\n  | 'ArrowAutofitUp'\n  | 'ArrowAutofitWidth'\n  | 'ArrowAutofitWidthDotted'\n  | 'ArrowBetweenDown'\n  | 'ArrowBetweenUp'\n  | 'ArrowBidirectionalLeftRight'\n  | 'ArrowBidirectionalUpDown'\n  | 'ArrowBounce'\n  | 'ArrowCircleDown'\n  | 'ArrowCircleDownDouble'\n  | 'ArrowCircleDownRight'\n  | 'ArrowCircleDownSplit'\n  | 'ArrowCircleDownUp'\n  | 'ArrowCircleLeft'\n  | 'ArrowCircleRight'\n  | 'ArrowCircleUp'\n  | 'ArrowCircleUpLeft'\n  | 'ArrowCircleUpRight'\n  | 'ArrowClockwise'\n  | 'ArrowClockwiseDashes'\n  | 'ArrowCollapseAll'\n  | 'ArrowCounterclockwise'\n  | 'ArrowCounterclockwiseDashes'\n  | 'ArrowCurveDownLeft'\n  | 'ArrowCurveDownRight'\n  | 'ArrowCurveUpLeft'\n  | 'ArrowCurveUpRight'\n  | 'ArrowDown'\n  | 'ArrowDownExclamation'\n  | 'ArrowDownLeft'\n  | 'ArrowDownload'\n  | 'ArrowDownloadOff'\n  | 'ArrowEject'\n  | 'ArrowEnter'\n  | 'ArrowEnterLeft'\n  | 'ArrowEnterUp'\n  | 'ArrowExit'\n  | 'ArrowExpand'\n  | 'ArrowExport'\n  | 'ArrowExportLtr'\n  | 'ArrowExportRtl'\n  | 'ArrowExportUp'\n  | 'ArrowFit'\n  | 'ArrowFitIn'\n  | 'ArrowFlowDiagonalUpRight'\n  | 'ArrowFlowUpRight'\n  | 'ArrowFlowUpRightRectangleMultiple'\n  | 'ArrowForward'\n  | 'ArrowForwardDownLightning'\n  | 'ArrowForwardDownPerson'\n  | 'ArrowHookDownLeft'\n  | 'ArrowHookDownRight'\n  | 'ArrowHookUpLeft'\n  | 'ArrowHookUpRight'\n  | 'ArrowImport'\n  | 'ArrowJoin'\n  | 'ArrowLeft'\n  | 'ArrowMaximize'\n  | 'ArrowMaximizeVertical'\n  | 'ArrowMinimize'\n  | 'ArrowMinimizeVertical'\n  | 'ArrowMove'\n  | 'ArrowMoveInward'\n  | 'ArrowNext'\n  | 'ArrowOutlineDownLeft'\n  | 'ArrowOutlineUpRight'\n  | 'ArrowParagraph'\n  | 'ArrowPrevious'\n  | 'ArrowRedo'\n  | 'ArrowRepeat1'\n  | 'ArrowRepeatAll'\n  | 'ArrowRepeatAllOff'\n  | 'ArrowReply'\n  | 'ArrowReplyAll'\n  | 'ArrowReplyDown'\n  | 'ArrowReset'\n  | 'ArrowRight'\n  | 'ArrowRotateClockwise'\n  | 'ArrowRotateCounterclockwise'\n  | 'ArrowRouting'\n  | 'ArrowRoutingRectangleMultiple'\n  | 'ArrowShuffle'\n  | 'ArrowShuffleOff'\n  | 'ArrowSort'\n  | 'ArrowSortDown'\n  | 'ArrowSortDownLines'\n  | 'ArrowSortUp'\n  | 'ArrowSplit'\n  | 'ArrowSprint'\n  | 'ArrowSquareDown'\n  | 'ArrowSquareUpRight'\n  | 'ArrowStepBack'\n  | 'ArrowStepIn'\n  | 'ArrowStepInDiagonalDownLeft'\n  | 'ArrowStepInLeft'\n  | 'ArrowStepInRight'\n  | 'ArrowStepOut'\n  | 'ArrowStepOver'\n  | 'ArrowSwap'\n  | 'ArrowSync'\n  | 'ArrowSyncCheckmark'\n  | 'ArrowSyncCircle'\n  | 'ArrowSyncDismiss'\n  | 'ArrowSyncOff'\n  | 'ArrowTrending'\n  | 'ArrowTrendingCheckmark'\n  | 'ArrowTrendingDown'\n  | 'ArrowTrendingLines'\n  | 'ArrowTrendingSettings'\n  | 'ArrowTrendingSparkle'\n  | 'ArrowTrendingText'\n  | 'ArrowTrendingWrench'\n  | 'ArrowTurnBidirectionalDownRight'\n  | 'ArrowTurnDownLeft'\n  | 'ArrowTurnDownRight'\n  | 'ArrowTurnDownUp'\n  | 'ArrowTurnLeftDown'\n  | 'ArrowTurnLeftRight'\n  | 'ArrowTurnLeftUp'\n  | 'ArrowTurnRight'\n  | 'ArrowTurnRightDown'\n  | 'ArrowTurnRightLeft'\n  | 'ArrowTurnRightUp'\n  | 'ArrowTurnUpDown'\n  | 'ArrowTurnUpLeft'\n  | 'ArrowUndo'\n  | 'ArrowUp'\n  | 'ArrowUpLeft'\n  | 'ArrowUpRight'\n  | 'ArrowUpRightDashes'\n  | 'ArrowUpSquareSettings'\n  | 'ArrowUpload'\n  | 'ArrowWrap'\n  | 'ArrowWrapOff'\n  | 'ArrowsBidirectional'\n  | 'Attach'\n  | 'AttachArrowRight'\n  | 'AttachText'\n  | 'AutoFitHeight'\n  | 'AutoFitWidth'\n  | 'Autocorrect'\n  | 'Autosum'\n  | 'Backpack'\n  | 'BackpackAdd'\n  | 'Backspace'\n  | 'Badge'\n  | 'Balloon'\n  | 'BarcodeScanner'\n  | 'Battery0'\n  | 'Battery10'\n  | 'Battery1'\n  | 'Battery2'\n  | 'Battery3'\n  | 'Battery4'\n  | 'Battery5'\n  | 'Battery6'\n  | 'Battery7'\n  | 'Battery8'\n  | 'Battery9'\n  | 'BatteryCharge'\n  | 'BatteryCheckmark'\n  | 'BatterySaver'\n  | 'BatteryWarning'\n  | 'Beach'\n  | 'Beaker'\n  | 'BeakerAdd'\n  | 'BeakerDismiss'\n  | 'BeakerEdit'\n  | 'BeakerEmpty'\n  | 'BeakerOff'\n  | 'BeakerSettings'\n  | 'Bed'\n  | 'BezierCurveSquare'\n  | 'BinFull'\n  | 'BinRecycle'\n  | 'BinRecycleFull'\n  | 'BinderTriangle'\n  | 'Bluetooth'\n  | 'BluetoothConnected'\n  | 'BluetoothDisabled'\n  | 'BluetoothSearching'\n  | 'Blur'\n  | 'Board'\n  | 'BoardGames'\n  | 'BoardHeart'\n  | 'BoardSplit'\n  | 'Book'\n  | 'BookAdd'\n  | 'BookArrowClockwise'\n  | 'BookClock'\n  | 'BookCoins'\n  | 'BookCompass'\n  | 'BookContacts'\n  | 'BookDatabase'\n  | 'BookDefault'\n  | 'BookDismiss'\n  | 'BookExclamationMark'\n  | 'BookGlobe'\n  | 'BookInformation'\n  | 'BookLetter'\n  | 'BookNumber'\n  | 'BookOpen'\n  | 'BookOpenGlobe'\n  | 'BookOpenMicrophone'\n  | 'BookPulse'\n  | 'BookQuestionMark'\n  | 'BookQuestionMarkRtl'\n  | 'BookSearch'\n  | 'BookStar'\n  | 'BookTemplate'\n  | 'BookTheta'\n  | 'BookToolbox'\n  | 'Bookmark'\n  | 'BookmarkAdd'\n  | 'BookmarkMultiple'\n  | 'BookmarkOff'\n  | 'BookmarkSearch'\n  | 'BorderAll'\n  | 'BorderBottom'\n  | 'BorderBottomDouble'\n  | 'BorderBottomThick'\n  | 'BorderInside'\n  | 'BorderLeft'\n  | 'BorderLeftRight'\n  | 'BorderNone'\n  | 'BorderOutside'\n  | 'BorderOutsideThick'\n  | 'BorderRight'\n  | 'BorderTop'\n  | 'BorderTopBottom'\n  | 'BorderTopBottomDouble'\n  | 'BorderTopBottomThick'\n  | 'Bot'\n  | 'BotAdd'\n  | 'BotSparkle'\n  | 'BowTie'\n  | 'BowlChopsticks'\n  | 'BowlSalad'\n  | 'Box'\n  | 'BoxArrowLeft'\n  | 'BoxArrowUp'\n  | 'BoxCheckmark'\n  | 'BoxDismiss'\n  | 'BoxEdit'\n  | 'BoxMultiple'\n  | 'BoxMultipleArrowLeft'\n  | 'BoxMultipleArrowRight'\n  | 'BoxMultipleCheckmark'\n  | 'BoxMultipleSearch'\n  | 'BoxSearch'\n  | 'BoxToolbox'\n  | 'Braces'\n  | 'BracesCheckmark'\n  | 'BracesDismiss'\n  | 'BracesVariable'\n  | 'BrainCircuit'\n  | 'Branch'\n  | 'BranchCompare'\n  | 'BranchFork'\n  | 'BranchForkHint'\n  | 'BranchForkLink'\n  | 'BranchRequest'\n  | 'BreakoutRoom'\n  | 'Briefcase'\n  | 'BriefcaseMedical'\n  | 'BriefcaseOff'\n  | 'BriefcasePerson'\n  | 'BriefcaseSearch'\n  | 'BrightnessHigh'\n  | 'BrightnessLow'\n  | 'BroadActivityFeed'\n  | 'Broom'\n  | 'BubbleMultiple'\n  | 'Bug'\n  | 'BugArrowCounterclockwise'\n  | 'BugProhibited'\n  | 'Building'\n  | 'BuildingBank'\n  | 'BuildingBankLink'\n  | 'BuildingBankToolbox'\n  | 'BuildingCloud'\n  | 'BuildingDesktop'\n  | 'BuildingFactory'\n  | 'BuildingGovernment'\n  | 'BuildingGovernmentSearch'\n  | 'BuildingHome'\n  | 'BuildingLighthouse'\n  | 'BuildingMosque'\n  | 'BuildingMultiple'\n  | 'BuildingPeople'\n  | 'BuildingRetail'\n  | 'BuildingRetailMoney'\n  | 'BuildingRetailMore'\n  | 'BuildingRetailShield'\n  | 'BuildingRetailToolbox'\n  | 'BuildingShop'\n  | 'BuildingSkyscraper'\n  | 'BuildingSwap'\n  | 'BuildingTownhouse'\n  | 'Button'\n  | 'Calculator'\n  | 'CalculatorArrowClockwise'\n  | 'CalculatorMultiple'\n  | 'Calendar'\n  | 'Calendar3Day'\n  | 'CalendarAdd'\n  | 'CalendarAgenda'\n  | 'CalendarArrowCounterclockwise'\n  | 'CalendarArrowDown'\n  | 'CalendarArrowRight'\n  | 'CalendarAssistant'\n  | 'CalendarCancel'\n  | 'CalendarChat'\n  | 'CalendarCheckmark'\n  | 'CalendarClock'\n  | 'CalendarDataBar'\n  | 'CalendarDate'\n  | 'CalendarDay'\n  | 'CalendarEdit'\n  | 'CalendarEmpty'\n  | 'CalendarError'\n  | 'CalendarEye'\n  | 'CalendarInfo'\n  | 'CalendarLink'\n  | 'CalendarLock'\n  | 'CalendarLtr'\n  | 'CalendarMail'\n  | 'CalendarMention'\n  | 'CalendarMonth'\n  | 'CalendarMultiple'\n  | 'CalendarNote'\n  | 'CalendarPattern'\n  | 'CalendarPerson'\n  | 'CalendarPhone'\n  | 'CalendarPlay'\n  | 'CalendarQuestionMark'\n  | 'CalendarRecord'\n  | 'CalendarReply'\n  | 'CalendarRtl'\n  | 'CalendarSearch'\n  | 'CalendarSettings'\n  | 'CalendarShield'\n  | 'CalendarStar'\n  | 'CalendarSync'\n  | 'CalendarToday'\n  | 'CalendarToolbox'\n  | 'CalendarVideo'\n  | 'CalendarWeekNumbers'\n  | 'CalendarWeekStart'\n  | 'CalendarWorkWeek'\n  | 'Call'\n  | 'CallAdd'\n  | 'CallCheckmark'\n  | 'CallConnecting'\n  | 'CallDismiss'\n  | 'CallEnd'\n  | 'CallExclamation'\n  | 'CallForward'\n  | 'CallInbound'\n  | 'CallMissed'\n  | 'CallOutbound'\n  | 'CallPark'\n  | 'CallPause'\n  | 'CallProhibited'\n  | 'CallTransfer'\n  | 'CallWarning'\n  | 'CalligraphyPen'\n  | 'CalligraphyPenCheckmark'\n  | 'CalligraphyPenError'\n  | 'CalligraphyPenQuestionMark'\n  | 'Camera'\n  | 'CameraAdd'\n  | 'CameraDome'\n  | 'CameraEdit'\n  | 'CameraOff'\n  | 'CameraSparkles'\n  | 'CameraSwitch'\n  | 'CardUi'\n  | 'CaretDown'\n  | 'CaretDownRight'\n  | 'CaretLeft'\n  | 'CaretRight'\n  | 'CaretUp'\n  | 'Cart'\n  | 'Cast'\n  | 'CastMultiple'\n  | 'CatchUp'\n  | 'Cd'\n  | 'Cellular3G'\n  | 'Cellular4G'\n  | 'Cellular5G'\n  | 'CellularData1'\n  | 'CellularData2'\n  | 'CellularData3'\n  | 'CellularData4'\n  | 'CellularData5'\n  | 'CellularOff'\n  | 'CellularWarning'\n  | 'CenterHorizontal'\n  | 'CenterVertical'\n  | 'Certificate'\n  | 'Channel'\n  | 'ChannelAdd'\n  | 'ChannelAlert'\n  | 'ChannelArrowLeft'\n  | 'ChannelDismiss'\n  | 'ChannelShare'\n  | 'ChannelSubtract'\n  | 'ChartMultiple'\n  | 'ChartPerson'\n  | 'Chat'\n  | 'ChatAdd'\n  | 'ChatArrowBack'\n  | 'ChatArrowDoubleBack'\n  | 'ChatBubblesQuestion'\n  | 'ChatCursor'\n  | 'ChatDismiss'\n  | 'ChatEmpty'\n  | 'ChatHelp'\n  | 'ChatLock'\n  | 'ChatMail'\n  | 'ChatMultiple'\n  | 'ChatMultipleHeart'\n  | 'ChatOff'\n  | 'ChatSettings'\n  | 'ChatSparkle'\n  | 'ChatVideo'\n  | 'ChatWarning'\n  | 'Check'\n  | 'Checkbox1'\n  | 'Checkbox2'\n  | 'CheckboxArrowRight'\n  | 'CheckboxChecked'\n  | 'CheckboxCheckedSync'\n  | 'CheckboxIndeterminate'\n  | 'CheckboxPerson'\n  | 'CheckboxUnchecked'\n  | 'CheckboxWarning'\n  | 'Checkmark'\n  | 'CheckmarkCircle'\n  | 'CheckmarkCircleSquare'\n  | 'CheckmarkLock'\n  | 'CheckmarkNote'\n  | 'CheckmarkSquare'\n  | 'CheckmarkStarburst'\n  | 'CheckmarkUnderlineCircle'\n  | 'Chess'\n  | 'ChevronCircleDown'\n  | 'ChevronCircleLeft'\n  | 'ChevronCircleRight'\n  | 'ChevronCircleUp'\n  | 'ChevronDoubleDown'\n  | 'ChevronDoubleLeft'\n  | 'ChevronDoubleRight'\n  | 'ChevronDoubleUp'\n  | 'ChevronDown'\n  | 'ChevronDownUp'\n  | 'ChevronLeft'\n  | 'ChevronRight'\n  | 'ChevronUp'\n  | 'ChevronUpDown'\n  | 'Circle'\n  | 'CircleEdit'\n  | 'CircleEraser'\n  | 'CircleHalfFill'\n  | 'CircleHint'\n  | 'CircleHintHalfVertical'\n  | 'CircleImage'\n  | 'CircleLine'\n  | 'CircleMultipleSubtractCheckmark'\n  | 'CircleOff'\n  | 'CircleSmall'\n  | 'City'\n  | 'Class'\n  | 'Classification'\n  | 'ClearFormatting'\n  | 'Clipboard'\n  | 'Clipboard3Day'\n  | 'ClipboardArrowRight'\n  | 'ClipboardBrush'\n  | 'ClipboardBulletList'\n  | 'ClipboardBulletListLtr'\n  | 'ClipboardBulletListRtl'\n  | 'ClipboardCheckmark'\n  | 'ClipboardClock'\n  | 'ClipboardCode'\n  | 'ClipboardDataBar'\n  | 'ClipboardDay'\n  | 'ClipboardEdit'\n  | 'ClipboardError'\n  | 'ClipboardHeart'\n  | 'ClipboardImage'\n  | 'ClipboardLetter'\n  | 'ClipboardLink'\n  | 'ClipboardMathFormula'\n  | 'ClipboardMonth'\n  | 'ClipboardMore'\n  | 'ClipboardMultiple'\n  | 'ClipboardNote'\n  | 'ClipboardNumber123'\n  | 'ClipboardPaste'\n  | 'ClipboardPulse'\n  | 'ClipboardSearch'\n  | 'ClipboardSettings'\n  | 'ClipboardTask'\n  | 'ClipboardTaskAdd'\n  | 'ClipboardTaskList'\n  | 'ClipboardTaskListLtr'\n  | 'ClipboardTaskListRtl'\n  | 'ClipboardText'\n  | 'ClipboardTextEdit'\n  | 'ClipboardTextLtr'\n  | 'ClipboardTextRtl'\n  | 'Clock'\n  | 'ClockAlarm'\n  | 'ClockArrowDownload'\n  | 'ClockDismiss'\n  | 'ClockLock'\n  | 'ClockPause'\n  | 'ClockToolbox'\n  | 'ClosedCaption'\n  | 'ClosedCaptionOff'\n  | 'Cloud'\n  | 'CloudAdd'\n  | 'CloudArchive'\n  | 'CloudArrowDown'\n  | 'CloudArrowUp'\n  | 'CloudBeaker'\n  | 'CloudBidirectional'\n  | 'CloudCheckmark'\n  | 'CloudCube'\n  | 'CloudDatabase'\n  | 'CloudDesktop'\n  | 'CloudDismiss'\n  | 'CloudEdit'\n  | 'CloudError'\n  | 'CloudFlow'\n  | 'CloudLink'\n  | 'CloudOff'\n  | 'CloudSwap'\n  | 'CloudSync'\n  | 'CloudWords'\n  | 'Clover'\n  | 'Code'\n  | 'CodeBlock'\n  | 'CodeCircle'\n  | 'CodeCs'\n  | 'CodeCsRectangle'\n  | 'CodeFs'\n  | 'CodeFsRectangle'\n  | 'CodeJs'\n  | 'CodeJsRectangle'\n  | 'CodePy'\n  | 'CodePyRectangle'\n  | 'CodeRb'\n  | 'CodeRbRectangle'\n  | 'CodeText'\n  | 'CodeTextEdit'\n  | 'CodeTextOff'\n  | 'CodeTs'\n  | 'CodeTsRectangle'\n  | 'CodeVb'\n  | 'CodeVbRectangle'\n  | 'Collections'\n  | 'CollectionsAdd'\n  | 'Color'\n  | 'ColorBackground'\n  | 'ColorBackgroundAccent'\n  | 'ColorFill'\n  | 'ColorFillAccent'\n  | 'ColorLine'\n  | 'ColorLineAccent'\n  | 'Column'\n  | 'ColumnArrowRight'\n  | 'ColumnDoubleCompare'\n  | 'ColumnEdit'\n  | 'ColumnSingle'\n  | 'ColumnSingleCompare'\n  | 'ColumnTriple'\n  | 'ColumnTripleEdit'\n  | 'Comma'\n  | 'Comment'\n  | 'CommentAdd'\n  | 'CommentArrowLeft'\n  | 'CommentArrowRight'\n  | 'CommentCheckmark'\n  | 'CommentDismiss'\n  | 'CommentEdit'\n  | 'CommentError'\n  | 'CommentLightning'\n  | 'CommentLink'\n  | 'CommentMention'\n  | 'CommentMultiple'\n  | 'CommentMultipleCheckmark'\n  | 'CommentMultipleLink'\n  | 'CommentNote'\n  | 'CommentOff'\n  | 'Communication'\n  | 'CommunicationPerson'\n  | 'CommunicationShield'\n  | 'CompassNorthwest'\n  | 'Component2DoubleTapSwipeDown'\n  | 'Component2DoubleTapSwipeUp'\n  | 'Compose'\n  | 'Cone'\n  | 'ConferenceRoom'\n  | 'Connected'\n  | 'Connector'\n  | 'ContactCard'\n  | 'ContactCardGroup'\n  | 'ContactCardLink'\n  | 'ContactCardRibbon'\n  | 'ContentSettings'\n  | 'ContentView'\n  | 'ContentViewGallery'\n  | 'ContentViewGalleryLightning'\n  | 'ContractDownLeft'\n  | 'ContractUpRight'\n  | 'ControlButton'\n  | 'ConvertRange'\n  | 'Cookies'\n  | 'Copy'\n  | 'CopyAdd'\n  | 'CopyArrowRight'\n  | 'CopySelect'\n  | 'Couch'\n  | 'CreditCardClock'\n  | 'CreditCardPerson'\n  | 'CreditCardToolbox'\n  | 'Crop'\n  | 'CropInterim'\n  | 'CropInterimOff'\n  | 'CropSparkle'\n  | 'Crown'\n  | 'CrownSubtract'\n  | 'Cube'\n  | 'CubeAdd'\n  | 'CubeArrowCurveDown'\n  | 'CubeLink'\n  | 'CubeMultiple'\n  | 'CubeQuick'\n  | 'CubeRotate'\n  | 'CubeSync'\n  | 'CubeTree'\n  | 'CurrencyDollarEuro'\n  | 'CurrencyDollarRupee'\n  | 'Cursor'\n  | 'CursorClick'\n  | 'CursorHover'\n  | 'CursorHoverOff'\n  | 'CursorProhibited'\n  | 'Cut'\n  | 'DarkTheme'\n  | 'DataArea'\n  | 'DataBarHorizontal'\n  | 'DataBarHorizontalDescending'\n  | 'DataBarVertical'\n  | 'DataBarVerticalAdd'\n  | 'DataBarVerticalAscending'\n  | 'DataBarVerticalStar'\n  | 'DataFunnel'\n  | 'DataHistogram'\n  | 'DataLine'\n  | 'DataPie'\n  | 'DataScatter'\n  | 'DataSunburst'\n  | 'DataTreemap'\n  | 'DataTrending'\n  | 'DataUsage'\n  | 'DataUsageEdit'\n  | 'DataUsageSettings'\n  | 'DataUsageToolbox'\n  | 'DataWaterfall'\n  | 'DataWhisker'\n  | 'Database'\n  | 'DatabaseArrowDown'\n  | 'DatabaseArrowRight'\n  | 'DatabaseArrowUp'\n  | 'DatabaseLightning'\n  | 'DatabaseLink'\n  | 'DatabaseMultiple'\n  | 'DatabasePerson'\n  | 'DatabasePlugConnected'\n  | 'DatabaseSearch'\n  | 'DatabaseStack'\n  | 'DatabaseSwitch'\n  | 'DatabaseWarning'\n  | 'DatabaseWindow'\n  | 'DecimalArrowLeft'\n  | 'DecimalArrowRight'\n  | 'Delete'\n  | 'DeleteArrowBack'\n  | 'DeleteDismiss'\n  | 'DeleteLines'\n  | 'DeleteOff'\n  | 'Dentist'\n  | 'DesignIdeas'\n  | 'Desk'\n  | 'Desktop'\n  | 'DesktopArrowDown'\n  | 'DesktopArrowRight'\n  | 'DesktopCheckmark'\n  | 'DesktopCursor'\n  | 'DesktopEdit'\n  | 'DesktopFlow'\n  | 'DesktopKeyboard'\n  | 'DesktopMac'\n  | 'DesktopPulse'\n  | 'DesktopSignal'\n  | 'DesktopSpeaker'\n  | 'DesktopSpeakerOff'\n  | 'DesktopSync'\n  | 'DesktopToolbox'\n  | 'DesktopTower'\n  | 'DeveloperBoard'\n  | 'DeveloperBoardLightning'\n  | 'DeveloperBoardLightningToolbox'\n  | 'DeveloperBoardSearch'\n  | 'DeviceEq'\n  | 'DeviceMeetingRoom'\n  | 'DeviceMeetingRoomRemote'\n  | 'Diagram'\n  | 'Dialpad'\n  | 'DialpadOff'\n  | 'DialpadQuestionMark'\n  | 'Diamond'\n  | 'Directions'\n  | 'Dishwasher'\n  | 'Dismiss'\n  | 'DismissCircle'\n  | 'DismissSquare'\n  | 'DismissSquareMultiple'\n  | 'Diversity'\n  | 'DividerShort'\n  | 'DividerTall'\n  | 'Dock'\n  | 'DockRow'\n  | 'Doctor'\n  | 'Document100'\n  | 'Document'\n  | 'DocumentAdd'\n  | 'DocumentArrowDown'\n  | 'DocumentArrowLeft'\n  | 'DocumentArrowRight'\n  | 'DocumentArrowUp'\n  | 'DocumentBorder'\n  | 'DocumentBorderPrint'\n  | 'DocumentBriefcase'\n  | 'DocumentBulletList'\n  | 'DocumentBulletListArrowLeft'\n  | 'DocumentBulletListClock'\n  | 'DocumentBulletListCube'\n  | 'DocumentBulletListMultiple'\n  | 'DocumentBulletListOff'\n  | 'DocumentCatchUp'\n  | 'DocumentCheckmark'\n  | 'DocumentChevronDouble'\n  | 'DocumentContract'\n  | 'DocumentCopy'\n  | 'DocumentCs'\n  | 'DocumentCss'\n  | 'DocumentCube'\n  | 'DocumentData'\n  | 'DocumentDataLink'\n  | 'DocumentDataLock'\n  | 'DocumentDatabase'\n  | 'DocumentDismiss'\n  | 'DocumentEdit'\n  | 'DocumentEndnote'\n  | 'DocumentError'\n  | 'DocumentFit'\n  | 'DocumentFlowchart'\n  | 'DocumentFolder'\n  | 'DocumentFooter'\n  | 'DocumentFooterDismiss'\n  | 'DocumentFs'\n  | 'DocumentHeader'\n  | 'DocumentHeaderArrowDown'\n  | 'DocumentHeaderDismiss'\n  | 'DocumentHeaderFooter'\n  | 'DocumentHeart'\n  | 'DocumentHeartPulse'\n  | 'DocumentImage'\n  | 'DocumentJava'\n  | 'DocumentJavascript'\n  | 'DocumentJs'\n  | 'DocumentKey'\n  | 'DocumentLandscape'\n  | 'DocumentLandscapeData'\n  | 'DocumentLandscapeSplit'\n  | 'DocumentLandscapeSplitHint'\n  | 'DocumentLightning'\n  | 'DocumentLink'\n  | 'DocumentLock'\n  | 'DocumentMargins'\n  | 'DocumentMention'\n  | 'DocumentMultiple'\n  | 'DocumentMultiplePercent'\n  | 'DocumentMultipleProhibited'\n  | 'DocumentMultipleSync'\n  | 'DocumentNumber1'\n  | 'DocumentOnePage'\n  | 'DocumentOnePageAdd'\n  | 'DocumentOnePageBeaker'\n  | 'DocumentOnePageColumns'\n  | 'DocumentOnePageLink'\n  | 'DocumentOnePageMultiple'\n  | 'DocumentOnePageSparkle'\n  | 'DocumentPageBottomCenter'\n  | 'DocumentPageBottomLeft'\n  | 'DocumentPageBottomRight'\n  | 'DocumentPageBreak'\n  | 'DocumentPageNumber'\n  | 'DocumentPageTopCenter'\n  | 'DocumentPageTopLeft'\n  | 'DocumentPageTopRight'\n  | 'DocumentPdf'\n  | 'DocumentPercent'\n  | 'DocumentPerson'\n  | 'DocumentPill'\n  | 'DocumentPrint'\n  | 'DocumentProhibited'\n  | 'DocumentPy'\n  | 'DocumentQuestionMark'\n  | 'DocumentQueue'\n  | 'DocumentQueueAdd'\n  | 'DocumentQueueMultiple'\n  | 'DocumentRb'\n  | 'DocumentRibbon'\n  | 'DocumentSass'\n  | 'DocumentSave'\n  | 'DocumentSearch'\n  | 'DocumentSettings'\n  | 'DocumentSplitHint'\n  | 'DocumentSplitHintOff'\n  | 'DocumentSync'\n  | 'DocumentTable'\n  | 'DocumentTableArrowRight'\n  | 'DocumentTableCheckmark'\n  | 'DocumentTableCube'\n  | 'DocumentTableSearch'\n  | 'DocumentTableTruck'\n  | 'DocumentTarget'\n  | 'DocumentText'\n  | 'DocumentTextClock'\n  | 'DocumentTextExtract'\n  | 'DocumentTextLink'\n  | 'DocumentTextToolbox'\n  | 'DocumentToolbox'\n  | 'DocumentTs'\n  | 'DocumentVb'\n  | 'DocumentWidth'\n  | 'DocumentYml'\n  | 'Door'\n  | 'DoorArrowLeft'\n  | 'DoorArrowRight'\n  | 'DoorTag'\n  | 'DoubleSwipeDown'\n  | 'DoubleSwipeUp'\n  | 'DoubleTapSwipeDown'\n  | 'DoubleTapSwipeUp'\n  | 'Drafts'\n  | 'Drag'\n  | 'DrawImage'\n  | 'DrawShape'\n  | 'DrawText'\n  | 'Drawer'\n  | 'DrawerAdd'\n  | 'DrawerArrowDownload'\n  | 'DrawerDismiss'\n  | 'DrawerPlay'\n  | 'DrawerSubtract'\n  | 'DrinkBeer'\n  | 'DrinkBottle'\n  | 'DrinkBottleOff'\n  | 'DrinkCoffee'\n  | 'DrinkMargarita'\n  | 'DrinkToGo'\n  | 'DrinkWine'\n  | 'DriveTrain'\n  | 'Drop'\n  | 'DualScreen'\n  | 'DualScreenAdd'\n  | 'DualScreenArrowRight'\n  | 'DualScreenArrowUp'\n  | 'DualScreenClock'\n  | 'DualScreenClosedAlert'\n  | 'DualScreenDesktop'\n  | 'DualScreenDismiss'\n  | 'DualScreenGroup'\n  | 'DualScreenHeader'\n  | 'DualScreenLock'\n  | 'DualScreenMirror'\n  | 'DualScreenPagination'\n  | 'DualScreenSettings'\n  | 'DualScreenSpan'\n  | 'DualScreenSpeaker'\n  | 'DualScreenStatusBar'\n  | 'DualScreenTablet'\n  | 'DualScreenUpdate'\n  | 'DualScreenVerticalScroll'\n  | 'DualScreenVibrate'\n  | 'Dumbbell'\n  | 'Dust'\n  | 'Earth'\n  | 'EarthLeaf'\n  | 'Edit'\n  | 'EditArrowBack'\n  | 'EditOff'\n  | 'EditProhibited'\n  | 'EditSettings'\n  | 'Elevator'\n  | 'Emoji'\n  | 'EmojiAdd'\n  | 'EmojiAngry'\n  | 'EmojiEdit'\n  | 'EmojiHand'\n  | 'EmojiHint'\n  | 'EmojiLaugh'\n  | 'EmojiMeh'\n  | 'EmojiMultiple'\n  | 'EmojiSad'\n  | 'EmojiSadSlight'\n  | 'EmojiSmileSlight'\n  | 'EmojiSparkle'\n  | 'EmojiSurprise'\n  | 'Engine'\n  | 'EqualCircle'\n  | 'EqualOff'\n  | 'Eraser'\n  | 'EraserMedium'\n  | 'EraserSegment'\n  | 'EraserSmall'\n  | 'EraserTool'\n  | 'ErrorCircle'\n  | 'ErrorCircleSettings'\n  | 'ExpandUpLeft'\n  | 'ExpandUpRight'\n  | 'ExtendedDock'\n  | 'Eye'\n  | 'EyeLines'\n  | 'EyeOff'\n  | 'EyeTracking'\n  | 'EyeTrackingOff'\n  | 'Eyedropper'\n  | 'EyedropperOff'\n  | 'FStop'\n  | 'FastAcceleration'\n  | 'FastForward'\n  | 'Fax'\n  | 'Feed'\n  | 'Filmstrip'\n  | 'FilmstripImage'\n  | 'FilmstripOff'\n  | 'FilmstripPlay'\n  | 'FilmstripSplit'\n  | 'Filter'\n  | 'FilterAdd'\n  | 'FilterDismiss'\n  | 'FilterSync'\n  | 'Fingerprint'\n  | 'Fire'\n  | 'Fireplace'\n  | 'FixedWidth'\n  | 'Flag'\n  | 'FlagCheckered'\n  | 'FlagClock'\n  | 'FlagOff'\n  | 'FlagPride'\n  | 'FlagPrideIntersexInclusiveProgress'\n  | 'FlagPridePhiladelphia'\n  | 'FlagPrideProgress'\n  | 'Flash'\n  | 'FlashAdd'\n  | 'FlashAuto'\n  | 'FlashCheckmark'\n  | 'FlashFlow'\n  | 'FlashOff'\n  | 'FlashPlay'\n  | 'FlashSettings'\n  | 'FlashSparkle'\n  | 'Flashlight'\n  | 'FlashlightOff'\n  | 'FlipHorizontal'\n  | 'FlipVertical'\n  | 'Flow'\n  | 'Flowchart'\n  | 'FlowchartCircle'\n  | 'Fluent'\n  | 'Fluid'\n  | 'Folder'\n  | 'FolderAdd'\n  | 'FolderArrowLeft'\n  | 'FolderArrowRight'\n  | 'FolderArrowUp'\n  | 'FolderBriefcase'\n  | 'FolderGlobe'\n  | 'FolderLightning'\n  | 'FolderLink'\n  | 'FolderList'\n  | 'FolderMail'\n  | 'FolderMultiple'\n  | 'FolderOpen'\n  | 'FolderOpenVertical'\n  | 'FolderPeople'\n  | 'FolderPerson'\n  | 'FolderProhibited'\n  | 'FolderSearch'\n  | 'FolderSwap'\n  | 'FolderSync'\n  | 'FolderZip'\n  | 'FontDecrease'\n  | 'FontIncrease'\n  | 'FontSpaceTrackingIn'\n  | 'FontSpaceTrackingOut'\n  | 'Food'\n  | 'FoodApple'\n  | 'FoodCake'\n  | 'FoodCarrot'\n  | 'FoodChickenLeg'\n  | 'FoodEgg'\n  | 'FoodFish'\n  | 'FoodGrains'\n  | 'FoodPizza'\n  | 'FoodToast'\n  | 'Form'\n  | 'FormMultiple'\n  | 'FormNew'\n  | 'Fps120'\n  | 'Fps240'\n  | 'Fps30'\n  | 'Fps60'\n  | 'Fps960'\n  | 'Frame'\n  | 'FullScreenMaximize'\n  | 'FullScreenMinimize'\n  | 'Games'\n  | 'GanttChart'\n  | 'Gas'\n  | 'GasPump'\n  | 'Gather'\n  | 'Gauge'\n  | 'GaugeAdd'\n  | 'Gavel'\n  | 'GavelProhibited'\n  | 'Gesture'\n  | 'Gif'\n  | 'Gift'\n  | 'GiftCard'\n  | 'GiftCardAdd'\n  | 'GiftCardArrowRight'\n  | 'GiftCardMoney'\n  | 'GiftCardMultiple'\n  | 'GiftOpen'\n  | 'Glance'\n  | 'GlanceDefault'\n  | 'GlanceHorizontal'\n  | 'GlanceHorizontalSparkle'\n  | 'GlanceHorizontalSparkles'\n  | 'Glasses'\n  | 'GlassesOff'\n  | 'Globe'\n  | 'GlobeAdd'\n  | 'GlobeArrowForward'\n  | 'GlobeArrowUp'\n  | 'GlobeClock'\n  | 'GlobeDesktop'\n  | 'GlobeError'\n  | 'GlobeLocation'\n  | 'GlobePerson'\n  | 'GlobeProhibited'\n  | 'GlobeSearch'\n  | 'GlobeShield'\n  | 'GlobeStar'\n  | 'GlobeSurface'\n  | 'GlobeSync'\n  | 'GlobeVideo'\n  | 'GlobeWarning'\n  | 'Grid'\n  | 'GridCircles'\n  | 'GridDots'\n  | 'GridKanban'\n  | 'Group'\n  | 'GroupDismiss'\n  | 'GroupList'\n  | 'GroupReturn'\n  | 'Guardian'\n  | 'Guest'\n  | 'GuestAdd'\n  | 'Guitar'\n  | 'HandDraw'\n  | 'HandLeft'\n  | 'HandLeftChat'\n  | 'HandOpenHeart'\n  | 'HandRight'\n  | 'HandRightOff'\n  | 'HandWave'\n  | 'Handshake'\n  | 'HardDrive'\n  | 'HardDriveCall'\n  | 'HatGraduation'\n  | 'HatGraduationAdd'\n  | 'HatGraduationSparkle'\n  | 'Hd'\n  | 'Hdr'\n  | 'HdrOff'\n  | 'Headphones'\n  | 'HeadphonesSoundWave'\n  | 'Headset'\n  | 'HeadsetAdd'\n  | 'HeadsetVr'\n  | 'Heart'\n  | 'HeartBroken'\n  | 'HeartCircle'\n  | 'HeartCircleHint'\n  | 'HeartOff'\n  | 'HeartPulse'\n  | 'HeartPulseCheckmark'\n  | 'HeartPulseError'\n  | 'HeartPulseWarning'\n  | 'Hexagon'\n  | 'HexagonThree'\n  | 'Highlight'\n  | 'HighlightAccent'\n  | 'HighlightLink'\n  | 'History'\n  | 'HistoryDismiss'\n  | 'Home'\n  | 'HomeAdd'\n  | 'HomeCheckmark'\n  | 'HomeDatabase'\n  | 'HomeHeart'\n  | 'HomeMore'\n  | 'HomePerson'\n  | 'HomeSplit'\n  | 'Hourglass'\n  | 'HourglassHalf'\n  | 'HourglassOneQuarter'\n  | 'HourglassThreeQuarter'\n  | 'Icons'\n  | 'Image'\n  | 'ImageAdd'\n  | 'ImageAltText'\n  | 'ImageArrowBack'\n  | 'ImageArrowCounterclockwise'\n  | 'ImageArrowForward'\n  | 'ImageBorder'\n  | 'ImageCircle'\n  | 'ImageCopy'\n  | 'ImageEdit'\n  | 'ImageGlobe'\n  | 'ImageMultiple'\n  | 'ImageMultipleOff'\n  | 'ImageOff'\n  | 'ImageProhibited'\n  | 'ImageReflection'\n  | 'ImageSearch'\n  | 'ImageShadow'\n  | 'ImageSparkle'\n  | 'ImageStack'\n  | 'ImageTable'\n  | 'ImmersiveReader'\n  | 'Important'\n  | 'Incognito'\n  | 'Info'\n  | 'InfoShield'\n  | 'InkStroke'\n  | 'InkStrokeArrowDown'\n  | 'InkStrokeArrowUpDown'\n  | 'InkingTool'\n  | 'InkingToolAccent'\n  | 'InprivateAccount'\n  | 'Insert'\n  | 'IosArrow'\n  | 'IosArrowLtr'\n  | 'IosArrowRtl'\n  | 'IosChevronRight'\n  | 'Iot'\n  | 'IotAlert'\n  | 'Javascript'\n  | 'Joystick'\n  | 'Key'\n  | 'KeyCommand'\n  | 'KeyMultiple'\n  | 'KeyReset'\n  | 'Keyboard123'\n  | 'Keyboard'\n  | 'KeyboardDock'\n  | 'KeyboardLayoutFloat'\n  | 'KeyboardLayoutOneHandedLeft'\n  | 'KeyboardLayoutResize'\n  | 'KeyboardLayoutSplit'\n  | 'KeyboardMouse'\n  | 'KeyboardShift'\n  | 'KeyboardShiftUppercase'\n  | 'KeyboardTab'\n  | 'Kiosk'\n  | 'Laptop'\n  | 'LaptopDismiss'\n  | 'LaptopMultiple'\n  | 'LaptopSettings'\n  | 'LaptopShield'\n  | 'LaserTool'\n  | 'Lasso'\n  | 'LauncherSettings'\n  | 'Layer'\n  | 'LayerDiagonal'\n  | 'LayerDiagonalAdd'\n  | 'LayerDiagonalPerson'\n  | 'LayoutCellFour'\n  | 'LayoutCellFourFocusBottomLeft'\n  | 'LayoutCellFourFocusBottomRight'\n  | 'LayoutCellFourFocusTopLeft'\n  | 'LayoutCellFourFocusTopRight'\n  | 'LayoutColumnFour'\n  | 'LayoutColumnFourFocusCenterLeft'\n  | 'LayoutColumnFourFocusCenterRight'\n  | 'LayoutColumnFourFocusLeft'\n  | 'LayoutColumnFourFocusRight'\n  | 'LayoutColumnOneThirdLeft'\n  | 'LayoutColumnOneThirdRight'\n  | 'LayoutColumnOneThirdRightHint'\n  | 'LayoutColumnThree'\n  | 'LayoutColumnThreeFocusCenter'\n  | 'LayoutColumnThreeFocusLeft'\n  | 'LayoutColumnThreeFocusRight'\n  | 'LayoutColumnTwo'\n  | 'LayoutColumnTwoFocusLeft'\n  | 'LayoutColumnTwoFocusRight'\n  | 'LayoutColumnTwoSplitLeft'\n  | 'LayoutColumnTwoSplitLeftFocusBottomLeft'\n  | 'LayoutColumnTwoSplitLeftFocusRight'\n  | 'LayoutColumnTwoSplitLeftFocusTopLeft'\n  | 'LayoutColumnTwoSplitRight'\n  | 'LayoutColumnTwoSplitRightFocusBottomRight'\n  | 'LayoutColumnTwoSplitRightFocusLeft'\n  | 'LayoutColumnTwoSplitRightFocusTopRight'\n  | 'LayoutRowFour'\n  | 'LayoutRowFourFocusBottom'\n  | 'LayoutRowFourFocusCenterBottom'\n  | 'LayoutRowFourFocusCenterTop'\n  | 'LayoutRowFourFocusTop'\n  | 'LayoutRowThree'\n  | 'LayoutRowThreeFocusBottom'\n  | 'LayoutRowThreeFocusCenter'\n  | 'LayoutRowThreeFocusTop'\n  | 'LayoutRowTwo'\n  | 'LayoutRowTwoFocusBottom'\n  | 'LayoutRowTwoFocusTop'\n  | 'LayoutRowTwoSplitBottom'\n  | 'LayoutRowTwoSplitBottomFocusBottomLeft'\n  | 'LayoutRowTwoSplitBottomFocusBottomRight'\n  | 'LayoutRowTwoSplitBottomFocusTop'\n  | 'LayoutRowTwoSplitTop'\n  | 'LayoutRowTwoSplitTopFocusBottom'\n  | 'LayoutRowTwoSplitTopFocusTopLeft'\n  | 'LayoutRowTwoSplitTopFocusTopRight'\n  | 'LeafOne'\n  | 'LeafThree'\n  | 'LeafTwo'\n  | 'LearningApp'\n  | 'Library'\n  | 'Lightbulb'\n  | 'LightbulbCheckmark'\n  | 'LightbulbCircle'\n  | 'LightbulbFilament'\n  | 'LightbulbPerson'\n  | 'Likert'\n  | 'Line'\n  | 'LineDashes'\n  | 'LineHorizontal1'\n  | 'LineHorizontal1Dashes'\n  | 'LineHorizontal2DashesSolid'\n  | 'LineHorizontal3'\n  | 'LineHorizontal4'\n  | 'LineHorizontal4Search'\n  | 'LineHorizontal5'\n  | 'LineHorizontal5Error'\n  | 'LineStyle'\n  | 'LineThickness'\n  | 'Link'\n  | 'LinkAdd'\n  | 'LinkDismiss'\n  | 'LinkEdit'\n  | 'LinkMultiple'\n  | 'LinkPerson'\n  | 'LinkSettings'\n  | 'LinkSquare'\n  | 'LinkToolbox'\n  | 'List'\n  | 'ListBar'\n  | 'ListBarTree'\n  | 'ListBarTreeOffset'\n  | 'ListRtl'\n  | 'Live'\n  | 'LiveOff'\n  | 'LocalLanguage'\n  | 'Location'\n  | 'LocationAdd'\n  | 'LocationAddLeft'\n  | 'LocationAddRight'\n  | 'LocationAddUp'\n  | 'LocationArrow'\n  | 'LocationArrowLeft'\n  | 'LocationArrowRight'\n  | 'LocationArrowUp'\n  | 'LocationDismiss'\n  | 'LocationLive'\n  | 'LocationOff'\n  | 'LocationTargetSquare'\n  | 'LockClosed'\n  | 'LockClosedKey'\n  | 'LockMultiple'\n  | 'LockOpen'\n  | 'LockShield'\n  | 'Lottery'\n  | 'Luggage'\n  | 'Mail'\n  | 'MailAdd'\n  | 'MailAlert'\n  | 'MailAllRead'\n  | 'MailAllUnread'\n  | 'MailArrowDoubleBack'\n  | 'MailArrowDown'\n  | 'MailArrowForward'\n  | 'MailArrowUp'\n  | 'MailAttach'\n  | 'MailCheckmark'\n  | 'MailClock'\n  | 'MailCopy'\n  | 'MailDismiss'\n  | 'MailEdit'\n  | 'MailError'\n  | 'MailInbox'\n  | 'MailInboxAdd'\n  | 'MailInboxAll'\n  | 'MailInboxArrowDown'\n  | 'MailInboxArrowRight'\n  | 'MailInboxArrowUp'\n  | 'MailInboxCheckmark'\n  | 'MailInboxDismiss'\n  | 'MailLink'\n  | 'MailList'\n  | 'MailMultiple'\n  | 'MailOff'\n  | 'MailOpenPerson'\n  | 'MailPause'\n  | 'MailProhibited'\n  | 'MailRead'\n  | 'MailReadMultiple'\n  | 'MailRewind'\n  | 'MailSettings'\n  | 'MailShield'\n  | 'MailTemplate'\n  | 'MailUnread'\n  | 'MailWarning'\n  | 'Mailbox'\n  | 'Map'\n  | 'MapDrive'\n  | 'Markdown'\n  | 'MatchAppLayout'\n  | 'MathFormatLinear'\n  | 'MathFormatProfessional'\n  | 'MathFormula'\n  | 'MathSymbols'\n  | 'Maximize'\n  | 'MeetNow'\n  | 'Megaphone'\n  | 'MegaphoneCircle'\n  | 'MegaphoneLoud'\n  | 'MegaphoneOff'\n  | 'Memory'\n  | 'Mention'\n  | 'MentionArrowDown'\n  | 'MentionBrackets'\n  | 'Merge'\n  | 'Mic'\n  | 'MicOff'\n  | 'MicProhibited'\n  | 'MicPulse'\n  | 'MicPulseOff'\n  | 'MicRecord'\n  | 'MicSettings'\n  | 'MicSparkle'\n  | 'MicSync'\n  | 'Microscope'\n  | 'Midi'\n  | 'MobileOptimized'\n  | 'Mold'\n  | 'Molecule'\n  | 'Money'\n  | 'MoneyCalculator'\n  | 'MoneyDismiss'\n  | 'MoneyHand'\n  | 'MoneyOff'\n  | 'MoneySettings'\n  | 'MoreCircle'\n  | 'MoreHorizontal'\n  | 'MoreVertical'\n  | 'MountainLocationBottom'\n  | 'MountainLocationTop'\n  | 'MountainTrail'\n  | 'MoviesAndTv'\n  | 'Multiplier12X'\n  | 'Multiplier15X'\n  | 'Multiplier18X'\n  | 'Multiplier1X'\n  | 'Multiplier2X'\n  | 'Multiplier5X'\n  | 'MultiselectLtr'\n  | 'MultiselectRtl'\n  | 'MusicNote1'\n  | 'MusicNote2'\n  | 'MusicNote2Play'\n  | 'MusicNoteOff1'\n  | 'MusicNoteOff2'\n  | 'MyLocation'\n  | 'Navigation'\n  | 'NavigationLocationTarget'\n  | 'NavigationPlay'\n  | 'NavigationUnread'\n  | 'NetworkAdapter'\n  | 'NetworkCheck'\n  | 'New'\n  | 'News'\n  | 'Next'\n  | 'NextFrame'\n  | 'Note'\n  | 'NoteAdd'\n  | 'NoteEdit'\n  | 'NotePin'\n  | 'Notebook'\n  | 'NotebookAdd'\n  | 'NotebookArrowCurveDown'\n  | 'NotebookError'\n  | 'NotebookEye'\n  | 'NotebookLightning'\n  | 'NotebookQuestionMark'\n  | 'NotebookSection'\n  | 'NotebookSectionArrowRight'\n  | 'NotebookSubsection'\n  | 'NotebookSync'\n  | 'Notepad'\n  | 'NotepadEdit'\n  | 'NotepadPerson'\n  | 'NumberCircle0'\n  | 'NumberCircle1'\n  | 'NumberCircle2'\n  | 'NumberCircle3'\n  | 'NumberCircle4'\n  | 'NumberCircle5'\n  | 'NumberCircle6'\n  | 'NumberCircle7'\n  | 'NumberCircle8'\n  | 'NumberCircle9'\n  | 'NumberRow'\n  | 'NumberSymbol'\n  | 'NumberSymbolDismiss'\n  | 'NumberSymbolSquare'\n  | 'Open'\n  | 'OpenFolder'\n  | 'OpenOff'\n  | 'Options'\n  | 'Organization'\n  | 'OrganizationHorizontal'\n  | 'Orientation'\n  | 'Oval'\n  | 'Oven'\n  | 'PaddingDown'\n  | 'PaddingLeft'\n  | 'PaddingRight'\n  | 'PaddingTop'\n  | 'PageFit'\n  | 'PaintBrush'\n  | 'PaintBrushArrowDown'\n  | 'PaintBrushArrowUp'\n  | 'PaintBucket'\n  | 'Pair'\n  | 'PanelBottom'\n  | 'PanelBottomContract'\n  | 'PanelBottomExpand'\n  | 'PanelLeft'\n  | 'PanelLeftAdd'\n  | 'PanelLeftContract'\n  | 'PanelLeftExpand'\n  | 'PanelLeftFocusRight'\n  | 'PanelLeftHeader'\n  | 'PanelLeftHeaderAdd'\n  | 'PanelLeftHeaderKey'\n  | 'PanelLeftKey'\n  | 'PanelLeftText'\n  | 'PanelLeftTextAdd'\n  | 'PanelLeftTextDismiss'\n  | 'PanelRight'\n  | 'PanelRightAdd'\n  | 'PanelRightContract'\n  | 'PanelRightCursor'\n  | 'PanelRightExpand'\n  | 'PanelRightGallery'\n  | 'PanelSeparateWindow'\n  | 'PanelTopContract'\n  | 'PanelTopExpand'\n  | 'PanelTopGallery'\n  | 'Password'\n  | 'Patch'\n  | 'Patient'\n  | 'Pause'\n  | 'PauseCircle'\n  | 'PauseOff'\n  | 'PauseSettings'\n  | 'Payment'\n  | 'Pen'\n  | 'PenDismiss'\n  | 'PenOff'\n  | 'PenProhibited'\n  | 'PenSparkle'\n  | 'Pentagon'\n  | 'People'\n  | 'PeopleAdd'\n  | 'PeopleAudience'\n  | 'PeopleCall'\n  | 'PeopleChat'\n  | 'PeopleCheckmark'\n  | 'PeopleCommunity'\n  | 'PeopleCommunityAdd'\n  | 'PeopleEdit'\n  | 'PeopleError'\n  | 'PeopleList'\n  | 'PeopleLock'\n  | 'PeopleMoney'\n  | 'PeopleProhibited'\n  | 'PeopleQueue'\n  | 'PeopleSearch'\n  | 'PeopleSettings'\n  | 'PeopleStar'\n  | 'PeopleSwap'\n  | 'PeopleSync'\n  | 'PeopleTeam'\n  | 'PeopleTeamAdd'\n  | 'PeopleTeamDelete'\n  | 'PeopleTeamToolbox'\n  | 'PeopleToolbox'\n  | 'Person'\n  | 'Person5'\n  | 'Person6'\n  | 'PersonAccounts'\n  | 'PersonAdd'\n  | 'PersonAlert'\n  | 'PersonArrowBack'\n  | 'PersonArrowLeft'\n  | 'PersonArrowRight'\n  | 'PersonAvailable'\n  | 'PersonBoard'\n  | 'PersonCall'\n  | 'PersonChat'\n  | 'PersonCircle'\n  | 'PersonClock'\n  | 'PersonDelete'\n  | 'PersonDesktop'\n  | 'PersonEdit'\n  | 'PersonFeedback'\n  | 'PersonHeart'\n  | 'PersonInfo'\n  | 'PersonKey'\n  | 'PersonLightbulb'\n  | 'PersonLightning'\n  | 'PersonLink'\n  | 'PersonLock'\n  | 'PersonMail'\n  | 'PersonMoney'\n  | 'PersonNote'\n  | 'PersonPhone'\n  | 'PersonPill'\n  | 'PersonProhibited'\n  | 'PersonQuestionMark'\n  | 'PersonRibbon'\n  | 'PersonRunning'\n  | 'PersonSearch'\n  | 'PersonSettings'\n  | 'PersonSquare'\n  | 'PersonSquareCheckmark'\n  | 'PersonStanding'\n  | 'PersonStar'\n  | 'PersonStarburst'\n  | 'PersonSubtract'\n  | 'PersonSupport'\n  | 'PersonSwap'\n  | 'PersonSync'\n  | 'PersonTag'\n  | 'PersonVoice'\n  | 'PersonWalking'\n  | 'PersonWarning'\n  | 'PersonWrench'\n  | 'Phone'\n  | 'PhoneAdd'\n  | 'PhoneArrowRight'\n  | 'PhoneBriefcase'\n  | 'PhoneChat'\n  | 'PhoneCheckmark'\n  | 'PhoneDesktop'\n  | 'PhoneDesktopAdd'\n  | 'PhoneDismiss'\n  | 'PhoneEdit'\n  | 'PhoneEraser'\n  | 'PhoneFooterArrowDown'\n  | 'PhoneHeaderArrowUp'\n  | 'PhoneKey'\n  | 'PhoneLaptop'\n  | 'PhoneLinkSetup'\n  | 'PhoneLock'\n  | 'PhoneMultiple'\n  | 'PhoneMultipleSettings'\n  | 'PhonePageHeader'\n  | 'PhonePagination'\n  | 'PhonePerson'\n  | 'PhoneScreenTime'\n  | 'PhoneShake'\n  | 'PhoneSpanIn'\n  | 'PhoneSpanOut'\n  | 'PhoneSpeaker'\n  | 'PhoneStatusBar'\n  | 'PhoneSubtract'\n  | 'PhoneTablet'\n  | 'PhoneUpdate'\n  | 'PhoneUpdateCheckmark'\n  | 'PhoneVerticalScroll'\n  | 'PhoneVibrate'\n  | 'PhotoFilter'\n  | 'Pi'\n  | 'PictureInPicture'\n  | 'PictureInPictureEnter'\n  | 'PictureInPictureExit'\n  | 'Pill'\n  | 'Pin'\n  | 'PinOff'\n  | 'Pipeline'\n  | 'PipelineAdd'\n  | 'PipelineArrowCurveDown'\n  | 'PipelinePlay'\n  | 'Pivot'\n  | 'PlantGrass'\n  | 'PlantRagweed'\n  | 'Play'\n  | 'PlayCircle'\n  | 'PlayCircleHint'\n  | 'PlayMultiple'\n  | 'PlaySettings'\n  | 'PlayingCards'\n  | 'PlugConnected'\n  | 'PlugConnectedAdd'\n  | 'PlugConnectedCheckmark'\n  | 'PlugConnectedSettings'\n  | 'PlugDisconnected'\n  | 'PointScan'\n  | 'Poll'\n  | 'PollHorizontal'\n  | 'PollOff'\n  | 'PortHdmi'\n  | 'PortMicroUsb'\n  | 'PortUsbA'\n  | 'PortUsbC'\n  | 'PositionBackward'\n  | 'PositionForward'\n  | 'PositionToBack'\n  | 'PositionToFront'\n  | 'Power'\n  | 'Predictions'\n  | 'Premium'\n  | 'PremiumPerson'\n  | 'PresenceAvailable'\n  | 'PresenceAway'\n  | 'PresenceBlocked'\n  | 'PresenceBusy'\n  | 'PresenceDnd'\n  | 'PresenceOffline'\n  | 'PresenceOof'\n  | 'PresenceUnknown'\n  | 'Presenter'\n  | 'PresenterOff'\n  | 'PreviewLink'\n  | 'Previous'\n  | 'PreviousFrame'\n  | 'Print'\n  | 'PrintAdd'\n  | 'Production'\n  | 'ProductionCheckmark'\n  | 'Prohibited'\n  | 'ProhibitedMultiple'\n  | 'ProhibitedNote'\n  | 'ProjectionScreen'\n  | 'ProjectionScreenDismiss'\n  | 'ProjectionScreenText'\n  | 'ProtocolHandler'\n  | 'Pulse'\n  | 'PulseSquare'\n  | 'PuzzleCube'\n  | 'PuzzleCubePiece'\n  | 'PuzzlePiece'\n  | 'PuzzlePieceShield'\n  | 'QrCode'\n  | 'Question'\n  | 'QuestionCircle'\n  | 'QuizNew'\n  | 'Radar'\n  | 'RadarCheckmark'\n  | 'RadarRectangleMultiple'\n  | 'RadioButton'\n  | 'RadioButtonOff'\n  | 'Ram'\n  | 'RatingMature'\n  | 'RatioOneToOne'\n  | 'ReOrder'\n  | 'ReOrderDotsHorizontal'\n  | 'ReOrderDotsVertical'\n  | 'ReadAloud'\n  | 'ReadingList'\n  | 'ReadingListAdd'\n  | 'ReadingModeMobile'\n  | 'RealEstate'\n  | 'Receipt'\n  | 'ReceiptAdd'\n  | 'ReceiptBag'\n  | 'ReceiptCube'\n  | 'ReceiptMoney'\n  | 'ReceiptPlay'\n  | 'ReceiptSearch'\n  | 'ReceiptSparkles'\n  | 'Record'\n  | 'RecordStop'\n  | 'RectangleLandscape'\n  | 'RectangleLandscapeHintCopy'\n  | 'RectangleLandscapeSparkle'\n  | 'RectangleLandscapeSync'\n  | 'RectangleLandscapeSyncOff'\n  | 'RectanglePortraitLocationTarget'\n  | 'Recycle'\n  | 'RemixAdd'\n  | 'Remote'\n  | 'Rename'\n  | 'Reorder'\n  | 'Replay'\n  | 'Resize'\n  | 'ResizeImage'\n  | 'ResizeLarge'\n  | 'ResizeSmall'\n  | 'ResizeTable'\n  | 'ResizeVideo'\n  | 'Reward'\n  | 'Rewind'\n  | 'Rhombus'\n  | 'Ribbon'\n  | 'RibbonAdd'\n  | 'RibbonOff'\n  | 'RibbonStar'\n  | 'RoadCone'\n  | 'Rocket'\n  | 'RotateLeft'\n  | 'RotateRight'\n  | 'Router'\n  | 'RowTriple'\n  | 'Rss'\n  | 'Ruler'\n  | 'Run'\n  | 'Sanitize'\n  | 'Save'\n  | 'SaveArrowRight'\n  | 'SaveCopy'\n  | 'SaveEdit'\n  | 'SaveImage'\n  | 'SaveMultiple'\n  | 'SaveSearch'\n  | 'SaveSync'\n  | 'Savings'\n  | 'ScaleFill'\n  | 'ScaleFit'\n  | 'Scales'\n  | 'Scan'\n  | 'ScanCamera'\n  | 'ScanDash'\n  | 'ScanObject'\n  | 'ScanPerson'\n  | 'ScanQrCode'\n  | 'ScanTable'\n  | 'ScanText'\n  | 'ScanThumbUp'\n  | 'ScanThumbUpOff'\n  | 'ScanType'\n  | 'ScanTypeCheckmark'\n  | 'ScanTypeOff'\n  | 'Scratchpad'\n  | 'ScreenCut'\n  | 'ScreenPerson'\n  | 'ScreenSearch'\n  | 'Screenshot'\n  | 'ScreenshotRecord'\n  | 'Script'\n  | 'Search'\n  | 'SearchInfo'\n  | 'SearchSettings'\n  | 'SearchShield'\n  | 'SearchSquare'\n  | 'SearchVisual'\n  | 'Seat'\n  | 'SeatAdd'\n  | 'SelectAllOff'\n  | 'SelectAllOn'\n  | 'SelectObject'\n  | 'SelectObjectSkew'\n  | 'SelectObjectSkewDismiss'\n  | 'SelectObjectSkewEdit'\n  | 'Send'\n  | 'SendBeaker'\n  | 'SendClock'\n  | 'SendCopy'\n  | 'SerialPort'\n  | 'Server'\n  | 'ServerLink'\n  | 'ServerMultiple'\n  | 'ServerPlay'\n  | 'ServerSurface'\n  | 'ServerSurfaceMultiple'\n  | 'ServiceBell'\n  | 'Settings'\n  | 'SettingsChat'\n  | 'SettingsCogMultiple'\n  | 'ShapeExclude'\n  | 'ShapeIntersect'\n  | 'ShapeOrganic'\n  | 'ShapeSubtract'\n  | 'ShapeUnion'\n  | 'Shapes'\n  | 'Share'\n  | 'ShareAndroid'\n  | 'ShareCloseTray'\n  | 'ShareIos'\n  | 'ShareScreenPerson'\n  | 'ShareScreenPersonOverlay'\n  | 'ShareScreenPersonOverlayInside'\n  | 'ShareScreenPersonP'\n  | 'ShareScreenStart'\n  | 'ShareScreenStop'\n  | 'Shield'\n  | 'ShieldAdd'\n  | 'ShieldBadge'\n  | 'ShieldCheckmark'\n  | 'ShieldDismiss'\n  | 'ShieldDismissShield'\n  | 'ShieldError'\n  | 'ShieldGlobe'\n  | 'ShieldKeyhole'\n  | 'ShieldLock'\n  | 'ShieldPerson'\n  | 'ShieldPersonAdd'\n  | 'ShieldProhibited'\n  | 'ShieldQuestion'\n  | 'ShieldTask'\n  | 'Shifts'\n  | 'Shifts30Minutes'\n  | 'ShiftsActivity'\n  | 'ShiftsAdd'\n  | 'ShiftsAvailability'\n  | 'ShiftsCheckmark'\n  | 'ShiftsDay'\n  | 'ShiftsOpen'\n  | 'ShiftsProhibited'\n  | 'ShiftsQuestionMark'\n  | 'ShiftsTeam'\n  | 'ShoppingBag'\n  | 'ShoppingBagAdd'\n  | 'ShoppingBagArrowLeft'\n  | 'ShoppingBagDismiss'\n  | 'ShoppingBagPause'\n  | 'ShoppingBagPercent'\n  | 'ShoppingBagPlay'\n  | 'ShoppingBagTag'\n  | 'Shortpick'\n  | 'Showerhead'\n  | 'SidebarSearchLtr'\n  | 'SidebarSearchRtl'\n  | 'SignOut'\n  | 'Signature'\n  | 'Sim'\n  | 'SkipBack10'\n  | 'SkipForward10'\n  | 'SkipForward30'\n  | 'SkipForwardTab'\n  | 'SlashForward'\n  | 'Sleep'\n  | 'SlideAdd'\n  | 'SlideArrowRight'\n  | 'SlideContent'\n  | 'SlideEraser'\n  | 'SlideGrid'\n  | 'SlideHide'\n  | 'SlideLayout'\n  | 'SlideLink'\n  | 'SlideMicrophone'\n  | 'SlideMultiple'\n  | 'SlideMultipleArrowRight'\n  | 'SlideMultipleSearch'\n  | 'SlideRecord'\n  | 'SlideSearch'\n  | 'SlideSettings'\n  | 'SlideSize'\n  | 'SlideText'\n  | 'SlideTextEdit'\n  | 'SlideTextMultiple'\n  | 'SlideTextPerson'\n  | 'SlideTextSparkle'\n  | 'SlideTransition'\n  | 'Smartwatch'\n  | 'SmartwatchDot'\n  | 'Snooze'\n  | 'SoundSource'\n  | 'SoundWaveCircle'\n  | 'Space3D'\n  | 'Spacebar'\n  | 'Sparkle'\n  | 'SparkleCircle'\n  | 'Speaker0'\n  | 'Speaker1'\n  | 'Speaker2'\n  | 'SpeakerBluetooth'\n  | 'SpeakerBox'\n  | 'SpeakerEdit'\n  | 'SpeakerMute'\n  | 'SpeakerOff'\n  | 'SpeakerSettings'\n  | 'SpeakerUsb'\n  | 'SpinnerIos'\n  | 'SplitHint'\n  | 'SplitHorizontal'\n  | 'SplitVertical'\n  | 'Sport'\n  | 'SportAmericanFootball'\n  | 'SportBaseball'\n  | 'SportBasketball'\n  | 'SportHockey'\n  | 'SportSoccer'\n  | 'SprayCan'\n  | 'Square'\n  | 'SquareAdd'\n  | 'SquareArrowForward'\n  | 'SquareDismiss'\n  | 'SquareEraser'\n  | 'SquareHint'\n  | 'SquareHintApps'\n  | 'SquareHintArrowBack'\n  | 'SquareHintHexagon'\n  | 'SquareHintSparkles'\n  | 'SquareMultiple'\n  | 'SquareShadow'\n  | 'SquaresNested'\n  | 'Stack'\n  | 'StackAdd'\n  | 'StackArrowForward'\n  | 'StackStar'\n  | 'StackVertical'\n  | 'Star'\n  | 'StarAdd'\n  | 'StarArrowBack'\n  | 'StarArrowRightEnd'\n  | 'StarArrowRightStart'\n  | 'StarCheckmark'\n  | 'StarDismiss'\n  | 'StarEdit'\n  | 'StarEmphasis'\n  | 'StarHalf'\n  | 'StarLineHorizontal3'\n  | 'StarOff'\n  | 'StarOneQuarter'\n  | 'StarProhibited'\n  | 'StarSettings'\n  | 'StarThreeQuarter'\n  | 'Status'\n  | 'Step'\n  | 'Steps'\n  | 'Stethoscope'\n  | 'Sticker'\n  | 'StickerAdd'\n  | 'Stop'\n  | 'Storage'\n  | 'StoreMicrosoft'\n  | 'Stream'\n  | 'StreamInput'\n  | 'StreamInputOutput'\n  | 'StreamOutput'\n  | 'StreetSign'\n  | 'StyleGuide'\n  | 'SubGrid'\n  | 'Subtitles'\n  | 'Subtract'\n  | 'SubtractCircle'\n  | 'SubtractCircleArrowBack'\n  | 'SubtractCircleArrowForward'\n  | 'SubtractParentheses'\n  | 'SubtractSquare'\n  | 'SubtractSquareMultiple'\n  | 'SurfaceEarbuds'\n  | 'SurfaceHub'\n  | 'SwimmingPool'\n  | 'SwipeDown'\n  | 'SwipeRight'\n  | 'SwipeUp'\n  | 'Symbols'\n  | 'SyncOff'\n  | 'Syringe'\n  | 'System'\n  | 'Tab'\n  | 'TabAdd'\n  | 'TabArrowLeft'\n  | 'TabDesktop'\n  | 'TabDesktopArrowClockwise'\n  | 'TabDesktopArrowLeft'\n  | 'TabDesktopBottom'\n  | 'TabDesktopClock'\n  | 'TabDesktopCopy'\n  | 'TabDesktopImage'\n  | 'TabDesktopLink'\n  | 'TabDesktopMultiple'\n  | 'TabDesktopMultipleAdd'\n  | 'TabDesktopMultipleBottom'\n  | 'TabDesktopNewPage'\n  | 'TabInPrivate'\n  | 'TabInprivateAccount'\n  | 'TabProhibited'\n  | 'TabShieldDismiss'\n  | 'Table'\n  | 'TableAdd'\n  | 'TableArrowUp'\n  | 'TableBottomRow'\n  | 'TableCalculator'\n  | 'TableCellEdit'\n  | 'TableCellsMerge'\n  | 'TableCellsSplit'\n  | 'TableChecker'\n  | 'TableColumnTopBottom'\n  | 'TableCopy'\n  | 'TableDefault'\n  | 'TableDeleteColumn'\n  | 'TableDeleteRow'\n  | 'TableDismiss'\n  | 'TableEdit'\n  | 'TableFreezeColumn'\n  | 'TableFreezeColumnAndRow'\n  | 'TableFreezeRow'\n  | 'TableImage'\n  | 'TableInsertColumn'\n  | 'TableInsertRow'\n  | 'TableLightning'\n  | 'TableLink'\n  | 'TableLock'\n  | 'TableMoveAbove'\n  | 'TableMoveBelow'\n  | 'TableMoveLeft'\n  | 'TableMoveRight'\n  | 'TableMultiple'\n  | 'TableOffset'\n  | 'TableOffsetAdd'\n  | 'TableOffsetLessThanOrEqualTo'\n  | 'TableOffsetSettings'\n  | 'TableResizeColumn'\n  | 'TableResizeRow'\n  | 'TableSearch'\n  | 'TableSettings'\n  | 'TableSimple'\n  | 'TableSimpleCheckmark'\n  | 'TableSimpleExclude'\n  | 'TableSimpleInclude'\n  | 'TableSimpleMultiple'\n  | 'TableSplit'\n  | 'TableStackAbove'\n  | 'TableStackBelow'\n  | 'TableStackLeft'\n  | 'TableStackRight'\n  | 'TableSwitch'\n  | 'Tablet'\n  | 'TabletLaptop'\n  | 'TabletSpeaker'\n  | 'Tabs'\n  | 'Tag'\n  | 'TagCircle'\n  | 'TagDismiss'\n  | 'TagError'\n  | 'TagLock'\n  | 'TagLockAccent'\n  | 'TagMultiple'\n  | 'TagOff'\n  | 'TagQuestionMark'\n  | 'TagReset'\n  | 'TagSearch'\n  | 'TapDouble'\n  | 'TapSingle'\n  | 'Target'\n  | 'TargetAdd'\n  | 'TargetArrow'\n  | 'TargetDismiss'\n  | 'TargetEdit'\n  | 'TaskListAdd'\n  | 'TaskListLtr'\n  | 'TaskListRtl'\n  | 'TaskListSquareAdd'\n  | 'TaskListSquareDatabase'\n  | 'TaskListSquareLtr'\n  | 'TaskListSquarePerson'\n  | 'TaskListSquareRtl'\n  | 'TaskListSquareSettings'\n  | 'TasksApp'\n  | 'TeardropBottomRight'\n  | 'Teddy'\n  | 'Temperature'\n  | 'Tent'\n  | 'TetrisApp'\n  | 'Text'\n  | 'TextAbcUnderlineDouble'\n  | 'TextAdd'\n  | 'TextAddSpaceAfter'\n  | 'TextAddSpaceBefore'\n  | 'TextAddT'\n  | 'TextAlignCenter'\n  | 'TextAlignCenterRotate270'\n  | 'TextAlignCenterRotate90'\n  | 'TextAlignDistributed'\n  | 'TextAlignDistributedEvenly'\n  | 'TextAlignDistributedVertical'\n  | 'TextAlignJustify'\n  | 'TextAlignJustifyLow'\n  | 'TextAlignJustifyLow90'\n  | 'TextAlignJustifyLowRotate270'\n  | 'TextAlignJustifyLowRotate90'\n  | 'TextAlignJustifyRotate270'\n  | 'TextAlignJustifyRotate90'\n  | 'TextAlignLeft'\n  | 'TextAlignLeftRotate270'\n  | 'TextAlignLeftRotate90'\n  | 'TextAlignRight'\n  | 'TextAlignRightRotate270'\n  | 'TextAlignRightRotate90'\n  | 'TextArrowDownRightColumn'\n  | 'TextAsterisk'\n  | 'TextBaseline'\n  | 'TextBold'\n  | 'TextBoxSettings'\n  | 'TextBulletList'\n  | 'TextBulletList270'\n  | 'TextBulletList90'\n  | 'TextBulletListAdd'\n  | 'TextBulletListCheckmark'\n  | 'TextBulletListDismiss'\n  | 'TextBulletListLtr'\n  | 'TextBulletListLtr90'\n  | 'TextBulletListLtrRotate270'\n  | 'TextBulletListRtl'\n  | 'TextBulletListRtl90'\n  | 'TextBulletListSquare'\n  | 'TextBulletListSquareClock'\n  | 'TextBulletListSquareEdit'\n  | 'TextBulletListSquarePerson'\n  | 'TextBulletListSquareSearch'\n  | 'TextBulletListSquareSettings'\n  | 'TextBulletListSquareShield'\n  | 'TextBulletListSquareSparkle'\n  | 'TextBulletListSquareToolbox'\n  | 'TextBulletListSquareWarning'\n  | 'TextBulletListTree'\n  | 'TextCaseLowercase'\n  | 'TextCaseTitle'\n  | 'TextCaseUppercase'\n  | 'TextChangeCase'\n  | 'TextClearFormatting'\n  | 'TextCollapse'\n  | 'TextColor'\n  | 'TextColorAccent'\n  | 'TextColumnOne'\n  | 'TextColumnOneNarrow'\n  | 'TextColumnOneSemiNarrow'\n  | 'TextColumnOneWide'\n  | 'TextColumnOneWideLightning'\n  | 'TextColumnThree'\n  | 'TextColumnTwo'\n  | 'TextColumnTwoLeft'\n  | 'TextColumnTwoRight'\n  | 'TextColumnWide'\n  | 'TextContinuous'\n  | 'TextDensity'\n  | 'TextDescription'\n  | 'TextDescriptionLtr'\n  | 'TextDescriptionRtl'\n  | 'TextDirectionHorizontalLeft'\n  | 'TextDirectionHorizontalLtr'\n  | 'TextDirectionHorizontalRight'\n  | 'TextDirectionHorizontalRtl'\n  | 'TextDirectionRotate270Right'\n  | 'TextDirectionRotate315Right'\n  | 'TextDirectionRotate45Right'\n  | 'TextDirectionRotate90Left'\n  | 'TextDirectionRotate90Ltr'\n  | 'TextDirectionRotate90Right'\n  | 'TextDirectionRotate90Rtl'\n  | 'TextDirectionVertical'\n  | 'TextEditStyle'\n  | 'TextEditStyleCharacterA'\n  | 'TextEditStyleCharacterGa'\n  | 'TextEffects'\n  | 'TextEffectsSparkle'\n  | 'TextExpand'\n  | 'TextField'\n  | 'TextFirstLine'\n  | 'TextFont'\n  | 'TextFontInfo'\n  | 'TextFontSize'\n  | 'TextFootnote'\n  | 'TextGrammarArrowLeft'\n  | 'TextGrammarArrowRight'\n  | 'TextGrammarCheckmark'\n  | 'TextGrammarDismiss'\n  | 'TextGrammarError'\n  | 'TextGrammarLightning'\n  | 'TextGrammarSettings'\n  | 'TextGrammarWand'\n  | 'TextHanging'\n  | 'TextHeader1'\n  | 'TextHeader1Lines'\n  | 'TextHeader1LinesCaret'\n  | 'TextHeader2'\n  | 'TextHeader2Lines'\n  | 'TextHeader2LinesCaret'\n  | 'TextHeader3'\n  | 'TextHeader3Lines'\n  | 'TextHeader3LinesCaret'\n  | 'TextIndentDecrease'\n  | 'TextIndentDecreaseLtr'\n  | 'TextIndentDecreaseLtr90'\n  | 'TextIndentDecreaseLtrRotate270'\n  | 'TextIndentDecreaseRotate270'\n  | 'TextIndentDecreaseRotate90'\n  | 'TextIndentDecreaseRtl'\n  | 'TextIndentDecreaseRtl90'\n  | 'TextIndentDecreaseRtlRotate270'\n  | 'TextIndentIncrease'\n  | 'TextIndentIncreaseLtr'\n  | 'TextIndentIncreaseLtr90'\n  | 'TextIndentIncreaseLtrRotate270'\n  | 'TextIndentIncreaseRotate270'\n  | 'TextIndentIncreaseRotate90'\n  | 'TextIndentIncreaseRtl'\n  | 'TextIndentIncreaseRtl90'\n  | 'TextIndentIncreaseRtlRotate270'\n  | 'TextItalic'\n  | 'TextLineSpacing'\n  | 'TextMore'\n  | 'TextNumberFormat'\n  | 'TextNumberListLtr'\n  | 'TextNumberListLtr90'\n  | 'TextNumberListLtrRotate270'\n  | 'TextNumberListRotate270'\n  | 'TextNumberListRotate90'\n  | 'TextNumberListRtl'\n  | 'TextNumberListRtl90'\n  | 'TextNumberListRtlRotate270'\n  | 'TextParagraph'\n  | 'TextParagraphDirection'\n  | 'TextParagraphDirectionLeft'\n  | 'TextParagraphDirectionRight'\n  | 'TextPeriodAsterisk'\n  | 'TextPositionBehind'\n  | 'TextPositionFront'\n  | 'TextPositionLine'\n  | 'TextPositionSquare'\n  | 'TextPositionSquareLeft'\n  | 'TextPositionSquareRight'\n  | 'TextPositionThrough'\n  | 'TextPositionTight'\n  | 'TextPositionTopBottom'\n  | 'TextProofingTools'\n  | 'TextQuote'\n  | 'TextSortAscending'\n  | 'TextSortDescending'\n  | 'TextStrikethrough'\n  | 'TextSubscript'\n  | 'TextSuperscript'\n  | 'TextT'\n  | 'TextTTag'\n  | 'TextUnderline'\n  | 'TextUnderlineCharacterU'\n  | 'TextUnderlineDouble'\n  | 'TextWholeWord'\n  | 'TextWordCount'\n  | 'TextWrap'\n  | 'TextWrapOff'\n  | 'Textbox'\n  | 'TextboxAlignBottom'\n  | 'TextboxAlignBottomCenter'\n  | 'TextboxAlignBottomLeft'\n  | 'TextboxAlignBottomRight'\n  | 'TextboxAlignBottomRotate90'\n  | 'TextboxAlignCenter'\n  | 'TextboxAlignMiddle'\n  | 'TextboxAlignMiddleLeft'\n  | 'TextboxAlignMiddleRight'\n  | 'TextboxAlignMiddleRotate90'\n  | 'TextboxAlignTop'\n  | 'TextboxAlignTopCenter'\n  | 'TextboxAlignTopLeft'\n  | 'TextboxAlignTopRight'\n  | 'TextboxAlignTopRotate90'\n  | 'TextboxMore'\n  | 'TextboxRotate90'\n  | 'TextboxSettings'\n  | 'Thinking'\n  | 'ThumbDislike'\n  | 'ThumbLike'\n  | 'ThumbLikeDislike'\n  | 'TicketDiagonal'\n  | 'TicketHorizontal'\n  | 'TimeAndWeather'\n  | 'TimePicker'\n  | 'Timeline'\n  | 'Timer10'\n  | 'Timer'\n  | 'Timer2'\n  | 'Timer3'\n  | 'TimerOff'\n  | 'ToggleLeft'\n  | 'ToggleMultiple'\n  | 'ToggleRight'\n  | 'Toolbox'\n  | 'TooltipQuote'\n  | 'TopSpeed'\n  | 'Translate'\n  | 'TranslateAuto'\n  | 'TranslateOff'\n  | 'Transmission'\n  | 'TrayItemAdd'\n  | 'TrayItemRemove'\n  | 'TreeDeciduous'\n  | 'TreeEvergreen'\n  | 'Triangle'\n  | 'TriangleDown'\n  | 'TriangleLeft'\n  | 'TriangleRight'\n  | 'TriangleUp'\n  | 'Trophy'\n  | 'TrophyLock'\n  | 'TrophyOff'\n  | 'Tv'\n  | 'TvArrowRight'\n  | 'TvUsb'\n  | 'Umbrella'\n  | 'UninstallApp'\n  | 'UsbPlug'\n  | 'UsbStick'\n  | 'Vault'\n  | 'VehicleBicycle'\n  | 'VehicleBus'\n  | 'VehicleCab'\n  | 'VehicleCableCar'\n  | 'VehicleCar'\n  | 'VehicleCarCollision'\n  | 'VehicleCarParking'\n  | 'VehicleCarProfile'\n  | 'VehicleCarProfileLtr'\n  | 'VehicleCarProfileLtrClock'\n  | 'VehicleCarProfileRtl'\n  | 'VehicleShip'\n  | 'VehicleSubway'\n  | 'VehicleSubwayClock'\n  | 'VehicleTruck'\n  | 'VehicleTruckBag'\n  | 'VehicleTruckCube'\n  | 'VehicleTruckProfile'\n  | 'Video'\n  | 'Video360'\n  | 'Video360Off'\n  | 'VideoAdd'\n  | 'VideoBackgroundEffect'\n  | 'VideoBackgroundEffectHorizontal'\n  | 'VideoChat'\n  | 'VideoClip'\n  | 'VideoClipMultiple'\n  | 'VideoClipOff'\n  | 'VideoClipOptimize'\n  | 'VideoLink'\n  | 'VideoOff'\n  | 'VideoPeople'\n  | 'VideoPerson'\n  | 'VideoPersonCall'\n  | 'VideoPersonClock'\n  | 'VideoPersonOff'\n  | 'VideoPersonPulse'\n  | 'VideoPersonSparkle'\n  | 'VideoPersonSparkleOff'\n  | 'VideoPersonStar'\n  | 'VideoPersonStarOff'\n  | 'VideoPlayPause'\n  | 'VideoProhibited'\n  | 'VideoRecording'\n  | 'VideoSecurity'\n  | 'VideoSwitch'\n  | 'VideoSync'\n  | 'ViewDesktop'\n  | 'ViewDesktopMobile'\n  | 'VirtualNetwork'\n  | 'VirtualNetworkToolbox'\n  | 'Voicemail'\n  | 'VoicemailArrowBack'\n  | 'VoicemailArrowForward'\n  | 'VoicemailArrowSubtract'\n  | 'VoicemailShield'\n  | 'VoicemailSubtract'\n  | 'Vote'\n  | 'WalkieTalkie'\n  | 'Wallet'\n  | 'WalletCreditCard'\n  | 'Wallpaper'\n  | 'Wand'\n  | 'Warning'\n  | 'WarningShield'\n  | 'Washer'\n  | 'Water'\n  | 'WeatherBlowingSnow'\n  | 'WeatherCloudy'\n  | 'WeatherDrizzle'\n  | 'WeatherDuststorm'\n  | 'WeatherFog'\n  | 'WeatherHailDay'\n  | 'WeatherHailNight'\n  | 'WeatherHaze'\n  | 'WeatherMoon'\n  | 'WeatherMoonOff'\n  | 'WeatherPartlyCloudyDay'\n  | 'WeatherPartlyCloudyNight'\n  | 'WeatherRain'\n  | 'WeatherRainShowersDay'\n  | 'WeatherRainShowersNight'\n  | 'WeatherRainSnow'\n  | 'WeatherSnow'\n  | 'WeatherSnowShowerDay'\n  | 'WeatherSnowShowerNight'\n  | 'WeatherSnowflake'\n  | 'WeatherSqualls'\n  | 'WeatherSunny'\n  | 'WeatherSunnyHigh'\n  | 'WeatherSunnyLow'\n  | 'WeatherThunderstorm'\n  | 'WebAsset'\n  | 'Whiteboard'\n  | 'WhiteboardOff'\n  | 'Wifi1'\n  | 'Wifi2'\n  | 'Wifi3'\n  | 'Wifi4'\n  | 'WifiLock'\n  | 'WifiOff'\n  | 'WifiSettings'\n  | 'WifiWarning'\n  | 'Window'\n  | 'WindowAd'\n  | 'WindowAdOff'\n  | 'WindowAdPerson'\n  | 'WindowApps'\n  | 'WindowArrowUp'\n  | 'WindowBulletList'\n  | 'WindowBulletListAdd'\n  | 'WindowConsole'\n  | 'WindowDatabase'\n  | 'WindowDevEdit'\n  | 'WindowDevTools'\n  | 'WindowEdit'\n  | 'WindowHeaderHorizontal'\n  | 'WindowHeaderHorizontalOff'\n  | 'WindowHeaderVertical'\n  | 'WindowInprivate'\n  | 'WindowInprivateAccount'\n  | 'WindowLocationTarget'\n  | 'WindowMultiple'\n  | 'WindowMultipleSwap'\n  | 'WindowNew'\n  | 'WindowPlay'\n  | 'WindowSettings'\n  | 'WindowShield'\n  | 'WindowText'\n  | 'WindowWrench'\n  | 'Wrench'\n  | 'WrenchScrewdriver'\n  | 'WrenchSettings'\n  | 'XboxConsole'\n  | 'XboxController'\n  | 'XboxControllerError'\n  | 'Xray'\n  | 'ZoomFit'\n  | 'ZoomIn'\n  | 'ZoomOut';\n\nexport type ActionStyle = 'default' | 'positive' | 'destructive';\n\nexport type ActionMode = 'primary' | 'secondary';\n\nexport type MenuActionArray = (\n  | IExecuteAction\n  | IInsertImageAction\n  | IOpenUrlAction\n  | IOpenUrlDialogAction\n  | IResetInputsAction\n  | ISubmitAction\n  | IToggleVisibilityAction\n)[];\n\nexport type ThemeName = 'Light' | 'Dark';\n\nexport type ElementHeight = 'auto' | 'stretch';\n\nexport type HorizontalAlignment = 'Left' | 'Center' | 'Right';\n\nexport type Spacing =\n  | 'None'\n  | 'ExtraSmall'\n  | 'Small'\n  | 'Default'\n  | 'Medium'\n  | 'Large'\n  | 'ExtraLarge'\n  | 'Padding';\n\nexport type TargetWidth =\n  | 'VeryNarrow'\n  | 'Narrow'\n  | 'Standard'\n  | 'Wide'\n  | 'atLeast:VeryNarrow'\n  | 'atMost:VeryNarrow'\n  | 'atLeast:Narrow'\n  | 'atMost:Narrow'\n  | 'atLeast:Standard'\n  | 'atMost:Standard'\n  | 'atLeast:Wide'\n  | 'atMost:Wide';\n\nexport type ContainerStyle =\n  | 'default'\n  | 'emphasis'\n  | 'accent'\n  | 'good'\n  | 'attention'\n  | 'warning';\n\nexport type VerticalAlignment = 'Top' | 'Center' | 'Bottom';\n\nexport type FlowLayoutItemFit = 'Fit' | 'Fill';\n\nexport type FillMode =\n  | 'Cover'\n  | 'RepeatHorizontally'\n  | 'RepeatVertically'\n  | 'Repeat';\n\nexport type TextSize = 'Small' | 'Default' | 'Medium' | 'Large' | 'ExtraLarge';\n\nexport type TextWeight = 'Lighter' | 'Default' | 'Bolder';\n\nexport type TextColor =\n  | 'Default'\n  | 'Dark'\n  | 'Light'\n  | 'Accent'\n  | 'Good'\n  | 'Warning'\n  | 'Attention';\n\nexport type FontType = 'Default' | 'Monospace';\n\nexport type TextBlockStyle = 'default' | 'columnHeader' | 'heading';\n\nexport type ImageStyle = 'Default' | 'Person' | 'RoundedCorners';\n\nexport type Size = 'Auto' | 'Stretch' | 'Small' | 'Medium' | 'Large';\n\nexport type ImageFitMode = 'Cover' | 'Contain' | 'Fill';\n\nexport type InputTextStyle = 'Text' | 'Tel' | 'Url' | 'Email' | 'Password';\n\nexport type AssociatedInputs = 'auto' | 'none';\n\nexport type ChoiceSetInputStyle = 'compact' | 'expanded' | 'filtered';\n\nexport type RatingSize = 'Medium' | 'Large';\n\nexport type RatingColor = 'Neutral' | 'Marigold';\n\nexport type RatingStyle = 'Default' | 'Compact';\n\nexport type IconSize =\n  | 'xxSmall'\n  | 'xSmall'\n  | 'Small'\n  | 'Standard'\n  | 'Medium'\n  | 'Large'\n  | 'xLarge'\n  | 'xxLarge';\n\nexport type IconStyle = 'Regular' | 'Filled';\n\nexport type CarouselPageAnimation = 'Slide' | 'CrossFade' | 'None';\n\nexport type BadgeIconPosition = 'Before' | 'After';\n\nexport type BadgeAppearance = 'Filled' | 'Tint';\n\nexport type BadgeSize = 'Medium' | 'Large' | 'ExtraLarge';\n\nexport type BadgeShape = 'Square' | 'Rounded' | 'Circular';\n\nexport type BadgeStyle =\n  | 'Default'\n  | 'Subtle'\n  | 'Informative'\n  | 'Accent'\n  | 'Good'\n  | 'Attention'\n  | 'Warning';\n\nexport type ProgressRingLabelPosition = 'Before' | 'After' | 'Above' | 'Below';\n\nexport type ProgressRingSize = 'Tiny' | 'Small' | 'Medium' | 'Large';\n\nexport type ProgressBarColor = 'Accent' | 'Good' | 'Warning' | 'Attention';\n\nexport type ChartColorSet =\n  | 'categorical'\n  | 'sequential'\n  | 'sequentialred'\n  | 'sequentialgreen'\n  | 'sequentialyellow'\n  | 'diverging';\n\nexport type ChartColor =\n  | 'good'\n  | 'warning'\n  | 'attention'\n  | 'neutral'\n  | 'categoricalRed'\n  | 'categoricalPurple'\n  | 'categoricalLavender'\n  | 'categoricalBlue'\n  | 'categoricalLightBlue'\n  | 'categoricalTeal'\n  | 'categoricalGreen'\n  | 'categoricalLime'\n  | 'categoricalMarigold'\n  | 'sequential1'\n  | 'sequential2'\n  | 'sequential3'\n  | 'sequential4'\n  | 'sequential5'\n  | 'sequential6'\n  | 'sequential7'\n  | 'sequential8'\n  | 'divergingBlue'\n  | 'divergingLightBlue'\n  | 'divergingCyan'\n  | 'divergingTeal'\n  | 'divergingYellow'\n  | 'divergingPeach'\n  | 'divergingLightRed'\n  | 'divergingRed'\n  | 'divergingMaroon'\n  | 'divergingGray'\n  | 'sequentialRed1'\n  | 'sequentialRed2'\n  | 'sequentialRed3'\n  | 'sequentialRed4'\n  | 'sequentialRed5'\n  | 'sequentialRed6'\n  | 'sequentialRed7'\n  | 'sequentialRed8'\n  | 'sequentialGreen1'\n  | 'sequentialGreen2'\n  | 'sequentialGreen3'\n  | 'sequentialGreen4'\n  | 'sequentialGreen5'\n  | 'sequentialGreen6'\n  | 'sequentialGreen7'\n  | 'sequentialGreen8'\n  | 'sequentialYellow1'\n  | 'sequentialYellow2'\n  | 'sequentialYellow3'\n  | 'sequentialYellow4'\n  | 'sequentialYellow5'\n  | 'sequentialYellow6'\n  | 'sequentialYellow7'\n  | 'sequentialYellow8';\n\nexport type DonutThickness = 'Thin' | 'Thick';\n\nexport type HorizontalBarChartDisplayMode =\n  | 'AbsoluteWithAxis'\n  | 'AbsoluteNoAxis'\n  | 'PartToWhole';\n\nexport type GaugeChartValueFormat = 'Percentage' | 'Fraction';\n\nexport type CodeLanguage =\n  | 'Bash'\n  | 'C'\n  | 'Cpp'\n  | 'CSharp'\n  | 'Css'\n  | 'Dos'\n  | 'Go'\n  | 'Graphql'\n  | 'Html'\n  | 'Java'\n  | 'JavaScript'\n  | 'Json'\n  | 'ObjectiveC'\n  | 'Perl'\n  | 'Php'\n  | 'PlainText'\n  | 'PowerShell'\n  | 'Python'\n  | 'Sql'\n  | 'TypeScript'\n  | 'VbNet'\n  | 'Verilog'\n  | 'Vhdl'\n  | 'Xml';\n\nexport type PersonaIconStyle = 'profilePicture' | 'contactCard' | 'none';\n\nexport type PersonaDisplayStyle = 'iconAndName' | 'iconOnly' | 'nameOnly';\n\nexport type FallbackElement =\n  | IContainer\n  | IActionSet\n  | IColumnSet\n  | IMedia\n  | IRichTextBlock\n  | ITable\n  | ITextBlock\n  | IFactSet\n  | IImageSet\n  | IImage\n  | ITextInput\n  | IDateInput\n  | ITimeInput\n  | INumberInput\n  | IToggleInput\n  | IChoiceSetInput\n  | IRatingInput\n  | IRating\n  | ICompoundButton\n  | IIcon\n  | ICarousel\n  | IBadge\n  | IProgressRing\n  | IProgressBar\n  | IDonutChart\n  | IPieChart\n  | IGroupedVerticalBarChart\n  | IVerticalBarChart\n  | IHorizontalBarChart\n  | IStackedHorizontalBarChart\n  | ILineChart\n  | IGaugeChart\n  | ICodeBlock\n  | IComUserMicrosoftGraphComponent\n  | IComUsersMicrosoftGraphComponent\n  | IComResourceMicrosoftGraphComponent\n  | IComFileMicrosoftGraphComponent\n  | IComEventMicrosoftGraphComponent\n  | 'drop';\n\nexport type CardElementArray = (\n  | IActionSet\n  | IBadge\n  | ICarousel\n  | IDonutChart\n  | IGaugeChart\n  | IHorizontalBarChart\n  | IStackedHorizontalBarChart\n  | ILineChart\n  | IPieChart\n  | IVerticalBarChart\n  | IGroupedVerticalBarChart\n  | ICodeBlock\n  | IColumnSet\n  | IComEventMicrosoftGraphComponent\n  | IComFileMicrosoftGraphComponent\n  | IComResourceMicrosoftGraphComponent\n  | IComUserMicrosoftGraphComponent\n  | IComUsersMicrosoftGraphComponent\n  | ICompoundButton\n  | IContainer\n  | IFactSet\n  | IIcon\n  | IImage\n  | IImageSet\n  | IChoiceSetInput\n  | IDateInput\n  | INumberInput\n  | IRatingInput\n  | ITextInput\n  | ITimeInput\n  | IToggleInput\n  | IMedia\n  | IProgressBar\n  | IProgressRing\n  | IRating\n  | IRichTextBlock\n  | ITable\n  | ITextBlock\n)[];\n\nexport type ImageSize = 'Small' | 'Medium' | 'Large';\n\nexport type TableCellArray = ITableCell[];\n\nexport type TableRowArray = ITableRow[];\n\nexport type RichTextBlockInlineArray = (\n  | ITextRun\n  | IIconRun\n  | IImageRun\n  | string\n)[];\n\nexport type ColumnArray = IColumn[];\n\nexport type ActionArray = (\n  | IExecuteAction\n  | IInsertImageAction\n  | IOpenUrlAction\n  | IOpenUrlDialogAction\n  | IPopoverAction\n  | IResetInputsAction\n  | IShowCardAction\n  | ISubmitAction\n  | IToggleVisibilityAction\n)[];\n\nexport type PopoverPosition = 'Above' | 'Below' | 'Before' | 'After';\n\nexport type FallbackAction =\n  | ISubmitAction\n  | IOpenUrlAction\n  | IExecuteAction\n  | IToggleVisibilityAction\n  | IShowCardAction\n  | IResetInputsAction\n  | IPopoverAction\n  | IOpenUrlDialogAction\n  | IInsertImageAction\n  | 'drop';\n\nexport type ImageInsertPosition = 'Selection' | 'Top' | 'Bottom';\n\nexport type Version = '1.0' | '1.1' | '1.2' | '1.3' | '1.4' | '1.5' | '1.6';\n\nexport type TeamsCardWidth = 'full';\n\nexport type MentionType = 'Person' | 'Tag';\n\n/**\n * An Adaptive Card, containing a free-form body of card elements, and an optional set of actions.\n */\nexport interface IAdaptiveCard {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **AdaptiveCard**.\n   */\n  readonly type: 'AdaptiveCard';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * An Action that will be invoked when the element is tapped or clicked. Action.ShowCard is not supported.\n   */\n  selectAction?:\n    | IExecuteAction\n    | IInsertImageAction\n    | IOpenUrlAction\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction\n    | ISubmitAction\n    | IToggleVisibilityAction;\n  /**\n   * The style of the container. Container styles control the colors of the background, border and text inside the container, in such a way that contrast requirements are always met.\n   */\n  style?: ContainerStyle;\n  /**\n   * The layouts associated with the container. The container can dynamically switch from one layout to another as the card's width changes. See [Container layouts](https://adaptivecards.microsoft.com/?topic=container-layouts) for more details.\n   */\n  layouts?: (IStackLayout | IFlowLayout | IAreaGridLayout)[];\n  /**\n   * The minimum height, in pixels, of the container, in the `<number>px` format.\n   */\n  minHeight?: string;\n  /**\n   * Defines the container's background image.\n   */\n  backgroundImage?: string | IBackgroundImage;\n  /**\n   * Controls how the container's content should be vertically aligned.\n   */\n  verticalContentAlignment?: VerticalAlignment;\n  /**\n   * Controls if the content of the card is to be rendered left-to-right or right-to-left.\n   */\n  rtl?: boolean;\n  /**\n   * A URL to the Adaptive Card schema the card is authored against.\n   */\n  $schema?: string;\n  /**\n   * The Adaptive Card schema version the card is authored against.\n   */\n  version?: Version;\n  /**\n   * The text that should be displayed if the client is not able to render the card.\n   */\n  fallbackText?: string;\n  /**\n   * The text that should be spoken for the entire card.\n   */\n  speak?: string;\n  /**\n   * Defines how the card can be refreshed by making a request to the target Bot.\n   */\n  refresh?: IRefreshDefinition;\n  /**\n   * Defines authentication information to enable on-behalf-of single-sign-on or just-in-time OAuth. This information is used in conjunction with the refresh property and Action.Execute in general.\n   */\n  authentication?: IAuthentication;\n  /**\n   * Teams-specific metadata associated with the card.\n   */\n  msteams?: ITeamsCardProperties;\n  /**\n   * Metadata associated with the card.\n   */\n  metadata?: ICardMetadata;\n  /**\n   * Resources card elements can reference.\n   */\n  resources?: IResources;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n  /**\n   * The body of the card, comprised of a list of elements displayed according to the layouts property. If the layouts property is not specified, a Layout.Stack is used.\n   */\n  body: CardElementArray;\n  /**\n   * The card level actions, which always appear at the bottom of the card.\n   */\n  actions?: ActionArray;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IAdaptiveCard.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of AdaptiveCard, false otherwise.\n */\nexport function isAdaptiveCard(value: unknown): value is IAdaptiveCard {\n  const obj = value as IAdaptiveCard;\n  return typeof obj === 'object' && obj.type === 'AdaptiveCard';\n}\n\nexport type AdaptiveCardOptions = Partial<Omit<IAdaptiveCard, 'type' | 'body'>>;\n\n/**\n * An Adaptive Card, containing a free-form body of card elements, and an optional set of actions.\n */\nexport class AdaptiveCard implements IAdaptiveCard {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **AdaptiveCard**.\n   */\n  readonly type = 'AdaptiveCard';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * An Action that will be invoked when the element is tapped or clicked. Action.ShowCard is not supported.\n   */\n  selectAction?:\n    | IExecuteAction\n    | IInsertImageAction\n    | IOpenUrlAction\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction\n    | ISubmitAction\n    | IToggleVisibilityAction;\n  /**\n   * The style of the container. Container styles control the colors of the background, border and text inside the container, in such a way that contrast requirements are always met.\n   */\n  style?: ContainerStyle;\n  /**\n   * The layouts associated with the container. The container can dynamically switch from one layout to another as the card's width changes. See [Container layouts](https://adaptivecards.microsoft.com/?topic=container-layouts) for more details.\n   */\n  layouts?: (IStackLayout | IFlowLayout | IAreaGridLayout)[];\n  /**\n   * The minimum height, in pixels, of the container, in the `<number>px` format.\n   */\n  minHeight?: string;\n  /**\n   * Defines the container's background image.\n   */\n  backgroundImage?: string | IBackgroundImage;\n  /**\n   * Controls how the container's content should be vertically aligned.\n   */\n  verticalContentAlignment?: VerticalAlignment;\n  /**\n   * Controls if the content of the card is to be rendered left-to-right or right-to-left.\n   */\n  rtl?: boolean;\n  /**\n   * A URL to the Adaptive Card schema the card is authored against.\n   */\n  $schema?: string;\n  /**\n   * The Adaptive Card schema version the card is authored against.\n   */\n  version?: Version = '1.5';\n  /**\n   * The text that should be displayed if the client is not able to render the card.\n   */\n  fallbackText?: string;\n  /**\n   * The text that should be spoken for the entire card.\n   */\n  speak?: string;\n  /**\n   * Defines how the card can be refreshed by making a request to the target Bot.\n   */\n  refresh?: IRefreshDefinition;\n  /**\n   * Defines authentication information to enable on-behalf-of single-sign-on or just-in-time OAuth. This information is used in conjunction with the refresh property and Action.Execute in general.\n   */\n  authentication?: IAuthentication;\n  /**\n   * Teams-specific metadata associated with the card.\n   */\n  msteams?: ITeamsCardProperties;\n  /**\n   * Metadata associated with the card.\n   */\n  metadata?: ICardMetadata;\n  /**\n   * Resources card elements can reference.\n   */\n  resources?: IResources;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n  /**\n   * The body of the card, comprised of a list of elements displayed according to the layouts property. If the layouts property is not specified, a Layout.Stack is used.\n   */\n  body: CardElementArray;\n  /**\n   * The card level actions, which always appear at the bottom of the card.\n   */\n  actions?: ActionArray;\n\n  constructor(...body: CardElementArray) {\n    this.body = body;\n  }\n\n  withOptions(value: AdaptiveCardOptions): this {\n    Object.assign(this, value);\n    return this;\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withSelectAction(\n    selectAction:\n      | IExecuteAction\n      | IInsertImageAction\n      | IOpenUrlAction\n      | IOpenUrlDialogAction\n      | IPopoverAction\n      | IResetInputsAction\n      | ISubmitAction\n      | IToggleVisibilityAction,\n  ): this {\n    this.selectAction = selectAction;\n    return this;\n  }\n\n  withStyle(style: ContainerStyle): this {\n    this.style = style;\n    return this;\n  }\n\n  withLayouts(\n    ...layouts: (IStackLayout | IFlowLayout | IAreaGridLayout)[]\n  ): this {\n    this.layouts = layouts;\n    return this;\n  }\n\n  withMinHeight(minHeight: string): this {\n    this.minHeight = minHeight;\n    return this;\n  }\n\n  withBackgroundImage(backgroundImage: string | IBackgroundImage): this {\n    this.backgroundImage = backgroundImage;\n    return this;\n  }\n\n  withVerticalContentAlignment(\n    verticalContentAlignment: VerticalAlignment,\n  ): this {\n    this.verticalContentAlignment = verticalContentAlignment;\n    return this;\n  }\n\n  withRtl(rtl: boolean): this {\n    this.rtl = rtl;\n    return this;\n  }\n\n  with$schema($schema: string): this {\n    this.$schema = $schema;\n    return this;\n  }\n\n  withVersion(version: Version): this {\n    this.version = version;\n    return this;\n  }\n\n  withFallbackText(fallbackText: string): this {\n    this.fallbackText = fallbackText;\n    return this;\n  }\n\n  withSpeak(speak: string): this {\n    this.speak = speak;\n    return this;\n  }\n\n  withRefresh(refresh: IRefreshDefinition): this {\n    this.refresh = refresh;\n    return this;\n  }\n\n  withAuthentication(authentication: IAuthentication): this {\n    this.authentication = authentication;\n    return this;\n  }\n\n  withMsteams(msteams: ITeamsCardProperties): this {\n    this.msteams = msteams;\n    return this;\n  }\n\n  withMetadata(metadata: ICardMetadata): this {\n    this.metadata = metadata;\n    return this;\n  }\n\n  withResources(resources: IResources): this {\n    this.resources = resources;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n\n  withBody(...body: CardElementArray): this {\n    this.body = body;\n    return this;\n  }\n\n  withActions(...actions: ActionArray): this {\n    this.actions = actions;\n    return this;\n  }\n}\n\n/**\n * Represents a list of versioned capabilities a host application must support.\n */\nexport interface IHostCapabilities extends Record<string, string> {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n}\n\nexport type HostCapabilitiesOptions = Partial<IHostCapabilities>;\n\n/**\n * Represents a list of versioned capabilities a host application must support.\n */\nexport class HostCapabilities implements IHostCapabilities {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n\n  constructor(options: HostCapabilitiesOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: IHostCapabilities): HostCapabilities {\n    return new HostCapabilities(options);\n  }\n  [key: string]: string;\n}\n\n/**\n * Gathers input values, merges them with the data property if specified, and sends them to the Bot via an Invoke activity. The Bot can respond synchronously and return an updated Adaptive Card to be displayed by the client. Action.Execute works in all Adaptive Card hosts.\n */\nexport interface IExecuteAction {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Action.Execute**.\n   */\n  readonly type: 'Action.Execute';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The title of the action, as it appears on buttons.\n   */\n  title?: string;\n  /**\n   * A URL (or Base64-encoded Data URI) to a PNG, GIF, JPEG or SVG image to be displayed on the left of the action's title.\n   *\n   * `iconUrl` also accepts the `<icon-name>[,regular|filled]` format to display an icon from the vast [Adaptive Card icon catalog](https://adaptivecards.microsoft.com/?topic=icon-catalog) instead of an image.\n   */\n  iconUrl?: string;\n  /**\n   * Control the style of the action, affecting its visual and spoken representations.\n   */\n  style?: ActionStyle;\n  /**\n   * Controls if the action is primary or secondary. Secondary actions appear in an overflow menu.\n   */\n  mode?: ActionMode;\n  /**\n   * The tooltip text to display when the action is hovered over.\n   */\n  tooltip?: string;\n  /**\n   * Controls the enabled state of the action. A disabled action cannot be clicked. If the action is represented as a button, the button's style will reflect this state.\n   */\n  isEnabled?: boolean;\n  /**\n   * The actions to display in the overflow menu of a Split action button.\n   */\n  menuActions?: MenuActionArray;\n  /**\n   * A set of theme-specific icon URLs.\n   */\n  themedIconUrls?: IThemedUrl[];\n  /**\n   * The data to send to the Bot when the action is executed. When expressed as an object, `data` is sent back to the Bot when the action is executed, adorned with the values of the inputs expressed as key/value pairs, where the key is the Id of the input. If `data` is expressed as a string, input values are not sent to the Bot.\n   */\n  data?: string | ISubmitActionData;\n  /**\n   * The Ids of the inputs associated with the Action.Submit. When the action is executed, the values of the associated inputs are sent to the Bot. See [Input validation](https://adaptivecards.microsoft.com/?topic=input-validation) for more details.\n   */\n  associatedInputs?: AssociatedInputs;\n  /**\n   * Controls if the action is enabled only if at least one required input has been filled by the user.\n   */\n  conditionallyEnabled?: boolean;\n  /**\n   * The verb of the action.\n   */\n  verb?: string;\n  /**\n   * An alternate action to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackAction;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IExecuteAction.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of ExecuteAction, false otherwise.\n */\nexport function isExecuteAction(value: unknown): value is IExecuteAction {\n  const obj = value as IExecuteAction;\n  return typeof obj === 'object' && obj.type === 'Action.Execute';\n}\n\nexport type ExecuteActionOptions = Partial<Omit<IExecuteAction, 'type'>>;\n\n/**\n * Gathers input values, merges them with the data property if specified, and sends them to the Bot via an Invoke activity. The Bot can respond synchronously and return an updated Adaptive Card to be displayed by the client. Action.Execute works in all Adaptive Card hosts.\n */\nexport class ExecuteAction implements IExecuteAction {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Action.Execute**.\n   */\n  readonly type = 'Action.Execute';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The title of the action, as it appears on buttons.\n   */\n  title?: string;\n  /**\n   * A URL (or Base64-encoded Data URI) to a PNG, GIF, JPEG or SVG image to be displayed on the left of the action's title.\n   *\n   * `iconUrl` also accepts the `<icon-name>[,regular|filled]` format to display an icon from the vast [Adaptive Card icon catalog](https://adaptivecards.microsoft.com/?topic=icon-catalog) instead of an image.\n   */\n  iconUrl?: string;\n  /**\n   * Control the style of the action, affecting its visual and spoken representations.\n   */\n  style?: ActionStyle = 'default';\n  /**\n   * Controls if the action is primary or secondary. Secondary actions appear in an overflow menu.\n   */\n  mode?: ActionMode = 'primary';\n  /**\n   * The tooltip text to display when the action is hovered over.\n   */\n  tooltip?: string;\n  /**\n   * Controls the enabled state of the action. A disabled action cannot be clicked. If the action is represented as a button, the button's style will reflect this state.\n   */\n  isEnabled?: boolean = true;\n  /**\n   * The actions to display in the overflow menu of a Split action button.\n   */\n  menuActions?: MenuActionArray;\n  /**\n   * A set of theme-specific icon URLs.\n   */\n  themedIconUrls?: IThemedUrl[];\n  /**\n   * The data to send to the Bot when the action is executed. When expressed as an object, `data` is sent back to the Bot when the action is executed, adorned with the values of the inputs expressed as key/value pairs, where the key is the Id of the input. If `data` is expressed as a string, input values are not sent to the Bot.\n   */\n  data?: string | ISubmitActionData;\n  /**\n   * The Ids of the inputs associated with the Action.Submit. When the action is executed, the values of the associated inputs are sent to the Bot. See [Input validation](https://adaptivecards.microsoft.com/?topic=input-validation) for more details.\n   */\n  associatedInputs?: AssociatedInputs;\n  /**\n   * Controls if the action is enabled only if at least one required input has been filled by the user.\n   */\n  conditionallyEnabled?: boolean = false;\n  /**\n   * The verb of the action.\n   */\n  verb?: string;\n  /**\n   * An alternate action to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackAction;\n\n  constructor(options: ExecuteActionOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<IExecuteAction, 'type'>): ExecuteAction {\n    return new ExecuteAction(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withTitle(title: string): this {\n    this.title = title;\n    return this;\n  }\n\n  withIconUrl(iconUrl: string): this {\n    this.iconUrl = iconUrl;\n    return this;\n  }\n\n  withStyle(style: ActionStyle): this {\n    this.style = style;\n    return this;\n  }\n\n  withMode(mode: ActionMode): this {\n    this.mode = mode;\n    return this;\n  }\n\n  withTooltip(tooltip: string): this {\n    this.tooltip = tooltip;\n    return this;\n  }\n\n  withIsEnabled(isEnabled = false): this {\n    this.isEnabled = isEnabled;\n    return this;\n  }\n\n  withMenuActions(...menuActions: MenuActionArray): this {\n    this.menuActions = menuActions;\n    return this;\n  }\n\n  withThemedIconUrls(...themedIconUrls: IThemedUrl[]): this {\n    this.themedIconUrls = themedIconUrls;\n    return this;\n  }\n\n  withData(data: string | ISubmitActionData): this {\n    this.data = data;\n    return this;\n  }\n\n  withAssociatedInputs(associatedInputs: AssociatedInputs): this {\n    this.associatedInputs = associatedInputs;\n    return this;\n  }\n\n  withConditionallyEnabled(conditionallyEnabled = true): this {\n    this.conditionallyEnabled = conditionallyEnabled;\n    return this;\n  }\n\n  withVerb(verb: string): this {\n    this.verb = verb;\n    return this;\n  }\n\n  withFallback(fallback: FallbackAction): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * Inserts an image into the host application's canvas.\n */\nexport interface IInsertImageAction {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Action.InsertImage**.\n   */\n  readonly type: 'Action.InsertImage';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The title of the action, as it appears on buttons.\n   */\n  title?: string;\n  /**\n   * A URL (or Base64-encoded Data URI) to a PNG, GIF, JPEG or SVG image to be displayed on the left of the action's title.\n   *\n   * `iconUrl` also accepts the `<icon-name>[,regular|filled]` format to display an icon from the vast [Adaptive Card icon catalog](https://adaptivecards.microsoft.com/?topic=icon-catalog) instead of an image.\n   */\n  iconUrl?: string;\n  /**\n   * Control the style of the action, affecting its visual and spoken representations.\n   */\n  style?: ActionStyle;\n  /**\n   * Controls if the action is primary or secondary. Secondary actions appear in an overflow menu.\n   */\n  mode?: ActionMode;\n  /**\n   * The tooltip text to display when the action is hovered over.\n   */\n  tooltip?: string;\n  /**\n   * Controls the enabled state of the action. A disabled action cannot be clicked. If the action is represented as a button, the button's style will reflect this state.\n   */\n  isEnabled?: boolean;\n  /**\n   * The actions to display in the overflow menu of a Split action button.\n   */\n  menuActions?: MenuActionArray;\n  /**\n   * A set of theme-specific icon URLs.\n   */\n  themedIconUrls?: IThemedUrl[];\n  /**\n   * The URL of the image to insert.\n   */\n  url?: string;\n  /**\n   * The alternate text for the image.\n   */\n  altText?: string;\n  /**\n   * The position at which to insert the image.\n   */\n  insertPosition?: ImageInsertPosition;\n  /**\n   * An alternate action to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackAction;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IInsertImageAction.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of InsertImageAction, false otherwise.\n */\nexport function isInsertImageAction(\n  value: unknown,\n): value is IInsertImageAction {\n  const obj = value as IInsertImageAction;\n  return typeof obj === 'object' && obj.type === 'Action.InsertImage';\n}\n\nexport type InsertImageActionOptions = Partial<\n  Omit<IInsertImageAction, 'type'>\n>;\n\n/**\n * Inserts an image into the host application's canvas.\n */\nexport class InsertImageAction implements IInsertImageAction {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Action.InsertImage**.\n   */\n  readonly type = 'Action.InsertImage';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The title of the action, as it appears on buttons.\n   */\n  title?: string;\n  /**\n   * A URL (or Base64-encoded Data URI) to a PNG, GIF, JPEG or SVG image to be displayed on the left of the action's title.\n   *\n   * `iconUrl` also accepts the `<icon-name>[,regular|filled]` format to display an icon from the vast [Adaptive Card icon catalog](https://adaptivecards.microsoft.com/?topic=icon-catalog) instead of an image.\n   */\n  iconUrl?: string;\n  /**\n   * Control the style of the action, affecting its visual and spoken representations.\n   */\n  style?: ActionStyle = 'default';\n  /**\n   * Controls if the action is primary or secondary. Secondary actions appear in an overflow menu.\n   */\n  mode?: ActionMode = 'primary';\n  /**\n   * The tooltip text to display when the action is hovered over.\n   */\n  tooltip?: string;\n  /**\n   * Controls the enabled state of the action. A disabled action cannot be clicked. If the action is represented as a button, the button's style will reflect this state.\n   */\n  isEnabled?: boolean = true;\n  /**\n   * The actions to display in the overflow menu of a Split action button.\n   */\n  menuActions?: MenuActionArray;\n  /**\n   * A set of theme-specific icon URLs.\n   */\n  themedIconUrls?: IThemedUrl[];\n  /**\n   * The URL of the image to insert.\n   */\n  url?: string;\n  /**\n   * The alternate text for the image.\n   */\n  altText?: string;\n  /**\n   * The position at which to insert the image.\n   */\n  insertPosition?: ImageInsertPosition = 'Selection';\n  /**\n   * An alternate action to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackAction;\n\n  constructor(options: InsertImageActionOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<IInsertImageAction, 'type'>): InsertImageAction {\n    return new InsertImageAction(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withTitle(title: string): this {\n    this.title = title;\n    return this;\n  }\n\n  withIconUrl(iconUrl: string): this {\n    this.iconUrl = iconUrl;\n    return this;\n  }\n\n  withStyle(style: ActionStyle): this {\n    this.style = style;\n    return this;\n  }\n\n  withMode(mode: ActionMode): this {\n    this.mode = mode;\n    return this;\n  }\n\n  withTooltip(tooltip: string): this {\n    this.tooltip = tooltip;\n    return this;\n  }\n\n  withIsEnabled(isEnabled = false): this {\n    this.isEnabled = isEnabled;\n    return this;\n  }\n\n  withMenuActions(...menuActions: MenuActionArray): this {\n    this.menuActions = menuActions;\n    return this;\n  }\n\n  withThemedIconUrls(...themedIconUrls: IThemedUrl[]): this {\n    this.themedIconUrls = themedIconUrls;\n    return this;\n  }\n\n  withUrl(url: string): this {\n    this.url = url;\n    return this;\n  }\n\n  withAltText(altText: string): this {\n    this.altText = altText;\n    return this;\n  }\n\n  withInsertPosition(insertPosition: ImageInsertPosition): this {\n    this.insertPosition = insertPosition;\n    return this;\n  }\n\n  withFallback(fallback: FallbackAction): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * Opens the provided URL in either a separate browser tab or within the host application.\n */\nexport interface IOpenUrlAction {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Action.OpenUrl**.\n   */\n  readonly type: 'Action.OpenUrl';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The title of the action, as it appears on buttons.\n   */\n  title?: string;\n  /**\n   * A URL (or Base64-encoded Data URI) to a PNG, GIF, JPEG or SVG image to be displayed on the left of the action's title.\n   *\n   * `iconUrl` also accepts the `<icon-name>[,regular|filled]` format to display an icon from the vast [Adaptive Card icon catalog](https://adaptivecards.microsoft.com/?topic=icon-catalog) instead of an image.\n   */\n  iconUrl?: string;\n  /**\n   * Control the style of the action, affecting its visual and spoken representations.\n   */\n  style?: ActionStyle;\n  /**\n   * Controls if the action is primary or secondary. Secondary actions appear in an overflow menu.\n   */\n  mode?: ActionMode;\n  /**\n   * The tooltip text to display when the action is hovered over.\n   */\n  tooltip?: string;\n  /**\n   * Controls the enabled state of the action. A disabled action cannot be clicked. If the action is represented as a button, the button's style will reflect this state.\n   */\n  isEnabled?: boolean;\n  /**\n   * The actions to display in the overflow menu of a Split action button.\n   */\n  menuActions?: MenuActionArray;\n  /**\n   * A set of theme-specific icon URLs.\n   */\n  themedIconUrls?: IThemedUrl[];\n  /**\n   * The URL to open.\n   */\n  url: string;\n  /**\n   * An alternate action to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackAction;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IOpenUrlAction.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of OpenUrlAction, false otherwise.\n */\nexport function isOpenUrlAction(value: unknown): value is IOpenUrlAction {\n  const obj = value as IOpenUrlAction;\n  return typeof obj === 'object' && obj.type === 'Action.OpenUrl';\n}\n\nexport type OpenUrlActionOptions = Partial<\n  Omit<IOpenUrlAction, 'type' | 'url'>\n>;\n\n/**\n * Opens the provided URL in either a separate browser tab or within the host application.\n */\nexport class OpenUrlAction implements IOpenUrlAction {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Action.OpenUrl**.\n   */\n  readonly type = 'Action.OpenUrl';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The title of the action, as it appears on buttons.\n   */\n  title?: string;\n  /**\n   * A URL (or Base64-encoded Data URI) to a PNG, GIF, JPEG or SVG image to be displayed on the left of the action's title.\n   *\n   * `iconUrl` also accepts the `<icon-name>[,regular|filled]` format to display an icon from the vast [Adaptive Card icon catalog](https://adaptivecards.microsoft.com/?topic=icon-catalog) instead of an image.\n   */\n  iconUrl?: string;\n  /**\n   * Control the style of the action, affecting its visual and spoken representations.\n   */\n  style?: ActionStyle = 'default';\n  /**\n   * Controls if the action is primary or secondary. Secondary actions appear in an overflow menu.\n   */\n  mode?: ActionMode = 'primary';\n  /**\n   * The tooltip text to display when the action is hovered over.\n   */\n  tooltip?: string;\n  /**\n   * Controls the enabled state of the action. A disabled action cannot be clicked. If the action is represented as a button, the button's style will reflect this state.\n   */\n  isEnabled?: boolean = true;\n  /**\n   * The actions to display in the overflow menu of a Split action button.\n   */\n  menuActions?: MenuActionArray;\n  /**\n   * A set of theme-specific icon URLs.\n   */\n  themedIconUrls?: IThemedUrl[];\n  /**\n   * The URL to open.\n   */\n  url: string;\n  /**\n   * An alternate action to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackAction;\n\n  constructor(url: string, options: OpenUrlActionOptions = {}) {\n    Object.assign(this, options);\n    this.url = url;\n  }\n\n  static from(options: Omit<IOpenUrlAction, 'type'>): OpenUrlAction {\n    return new OpenUrlAction(options.url, options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withTitle(title: string): this {\n    this.title = title;\n    return this;\n  }\n\n  withIconUrl(iconUrl: string): this {\n    this.iconUrl = iconUrl;\n    return this;\n  }\n\n  withStyle(style: ActionStyle): this {\n    this.style = style;\n    return this;\n  }\n\n  withMode(mode: ActionMode): this {\n    this.mode = mode;\n    return this;\n  }\n\n  withTooltip(tooltip: string): this {\n    this.tooltip = tooltip;\n    return this;\n  }\n\n  withIsEnabled(isEnabled = false): this {\n    this.isEnabled = isEnabled;\n    return this;\n  }\n\n  withMenuActions(...menuActions: MenuActionArray): this {\n    this.menuActions = menuActions;\n    return this;\n  }\n\n  withThemedIconUrls(...themedIconUrls: IThemedUrl[]): this {\n    this.themedIconUrls = themedIconUrls;\n    return this;\n  }\n\n  withUrl(url: string): this {\n    this.url = url;\n    return this;\n  }\n\n  withFallback(fallback: FallbackAction): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * Opens a task module in a modal dialog hosting the content at a provided URL.\n */\nexport interface IOpenUrlDialogAction {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Action.OpenUrlDialog**.\n   */\n  readonly type: 'Action.OpenUrlDialog';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The title of the action, as it appears on buttons.\n   */\n  title?: string;\n  /**\n   * A URL (or Base64-encoded Data URI) to a PNG, GIF, JPEG or SVG image to be displayed on the left of the action's title.\n   *\n   * `iconUrl` also accepts the `<icon-name>[,regular|filled]` format to display an icon from the vast [Adaptive Card icon catalog](https://adaptivecards.microsoft.com/?topic=icon-catalog) instead of an image.\n   */\n  iconUrl?: string;\n  /**\n   * Control the style of the action, affecting its visual and spoken representations.\n   */\n  style?: ActionStyle;\n  /**\n   * Controls if the action is primary or secondary. Secondary actions appear in an overflow menu.\n   */\n  mode?: ActionMode;\n  /**\n   * The tooltip text to display when the action is hovered over.\n   */\n  tooltip?: string;\n  /**\n   * Controls the enabled state of the action. A disabled action cannot be clicked. If the action is represented as a button, the button's style will reflect this state.\n   */\n  isEnabled?: boolean;\n  /**\n   * The actions to display in the overflow menu of a Split action button.\n   */\n  menuActions?: MenuActionArray;\n  /**\n   * A set of theme-specific icon URLs.\n   */\n  themedIconUrls?: IThemedUrl[];\n  /**\n   * The title of the dialog to be displayed in the dialog header.\n   */\n  dialogTitle?: string;\n  /**\n   * The height of the dialog. To define height as a number of pixels, use the <number>px format.\n   */\n  dialogHeight?: 'small' | 'medium' | 'large' | string;\n  /**\n   * The width of the dialog. To define width as a number of pixels, use the <number>px format.\n   */\n  dialogWidth?: 'small' | 'medium' | 'large' | string;\n  /**\n   * The URL to open.\n   */\n  url?: string;\n  /**\n   * An alternate action to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackAction;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IOpenUrlDialogAction.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of OpenUrlDialogAction, false otherwise.\n */\nexport function isOpenUrlDialogAction(\n  value: unknown,\n): value is IOpenUrlDialogAction {\n  const obj = value as IOpenUrlDialogAction;\n  return typeof obj === 'object' && obj.type === 'Action.OpenUrlDialog';\n}\n\nexport type OpenUrlDialogActionOptions = Partial<\n  Omit<IOpenUrlDialogAction, 'type'>\n>;\n\n/**\n * Opens a task module in a modal dialog hosting the content at a provided URL.\n */\nexport class OpenUrlDialogAction implements IOpenUrlDialogAction {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Action.OpenUrlDialog**.\n   */\n  readonly type = 'Action.OpenUrlDialog';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The title of the action, as it appears on buttons.\n   */\n  title?: string;\n  /**\n   * A URL (or Base64-encoded Data URI) to a PNG, GIF, JPEG or SVG image to be displayed on the left of the action's title.\n   *\n   * `iconUrl` also accepts the `<icon-name>[,regular|filled]` format to display an icon from the vast [Adaptive Card icon catalog](https://adaptivecards.microsoft.com/?topic=icon-catalog) instead of an image.\n   */\n  iconUrl?: string;\n  /**\n   * Control the style of the action, affecting its visual and spoken representations.\n   */\n  style?: ActionStyle = 'default';\n  /**\n   * Controls if the action is primary or secondary. Secondary actions appear in an overflow menu.\n   */\n  mode?: ActionMode = 'primary';\n  /**\n   * The tooltip text to display when the action is hovered over.\n   */\n  tooltip?: string;\n  /**\n   * Controls the enabled state of the action. A disabled action cannot be clicked. If the action is represented as a button, the button's style will reflect this state.\n   */\n  isEnabled?: boolean = true;\n  /**\n   * The actions to display in the overflow menu of a Split action button.\n   */\n  menuActions?: MenuActionArray;\n  /**\n   * A set of theme-specific icon URLs.\n   */\n  themedIconUrls?: IThemedUrl[];\n  /**\n   * The title of the dialog to be displayed in the dialog header.\n   */\n  dialogTitle?: string;\n  /**\n   * The height of the dialog. To define height as a number of pixels, use the <number>px format.\n   */\n  dialogHeight?: 'small' | 'medium' | 'large' | string;\n  /**\n   * The width of the dialog. To define width as a number of pixels, use the <number>px format.\n   */\n  dialogWidth?: 'small' | 'medium' | 'large' | string;\n  /**\n   * The URL to open.\n   */\n  url?: string;\n  /**\n   * An alternate action to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackAction;\n\n  constructor(options: OpenUrlDialogActionOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(\n    options: Omit<IOpenUrlDialogAction, 'type'>,\n  ): OpenUrlDialogAction {\n    return new OpenUrlDialogAction(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withTitle(title: string): this {\n    this.title = title;\n    return this;\n  }\n\n  withIconUrl(iconUrl: string): this {\n    this.iconUrl = iconUrl;\n    return this;\n  }\n\n  withStyle(style: ActionStyle): this {\n    this.style = style;\n    return this;\n  }\n\n  withMode(mode: ActionMode): this {\n    this.mode = mode;\n    return this;\n  }\n\n  withTooltip(tooltip: string): this {\n    this.tooltip = tooltip;\n    return this;\n  }\n\n  withIsEnabled(isEnabled = false): this {\n    this.isEnabled = isEnabled;\n    return this;\n  }\n\n  withMenuActions(...menuActions: MenuActionArray): this {\n    this.menuActions = menuActions;\n    return this;\n  }\n\n  withThemedIconUrls(...themedIconUrls: IThemedUrl[]): this {\n    this.themedIconUrls = themedIconUrls;\n    return this;\n  }\n\n  withDialogTitle(dialogTitle: string): this {\n    this.dialogTitle = dialogTitle;\n    return this;\n  }\n\n  withDialogHeight(dialogHeight: 'small' | 'medium' | 'large' | string): this {\n    this.dialogHeight = dialogHeight;\n    return this;\n  }\n\n  withDialogWidth(dialogWidth: 'small' | 'medium' | 'large' | string): this {\n    this.dialogWidth = dialogWidth;\n    return this;\n  }\n\n  withUrl(url: string): this {\n    this.url = url;\n    return this;\n  }\n\n  withFallback(fallback: FallbackAction): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * Resets the values of the inputs in the card.\n */\nexport interface IResetInputsAction {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Action.ResetInputs**.\n   */\n  readonly type: 'Action.ResetInputs';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The title of the action, as it appears on buttons.\n   */\n  title?: string;\n  /**\n   * A URL (or Base64-encoded Data URI) to a PNG, GIF, JPEG or SVG image to be displayed on the left of the action's title.\n   *\n   * `iconUrl` also accepts the `<icon-name>[,regular|filled]` format to display an icon from the vast [Adaptive Card icon catalog](https://adaptivecards.microsoft.com/?topic=icon-catalog) instead of an image.\n   */\n  iconUrl?: string;\n  /**\n   * Control the style of the action, affecting its visual and spoken representations.\n   */\n  style?: ActionStyle;\n  /**\n   * Controls if the action is primary or secondary. Secondary actions appear in an overflow menu.\n   */\n  mode?: ActionMode;\n  /**\n   * The tooltip text to display when the action is hovered over.\n   */\n  tooltip?: string;\n  /**\n   * Controls the enabled state of the action. A disabled action cannot be clicked. If the action is represented as a button, the button's style will reflect this state.\n   */\n  isEnabled?: boolean;\n  /**\n   * The actions to display in the overflow menu of a Split action button.\n   */\n  menuActions?: MenuActionArray;\n  /**\n   * A set of theme-specific icon URLs.\n   */\n  themedIconUrls?: IThemedUrl[];\n  /**\n   * The Ids of the inputs that should be reset.\n   */\n  targetInputIds?: string[];\n  /**\n   * An alternate action to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackAction;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IResetInputsAction.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of ResetInputsAction, false otherwise.\n */\nexport function isResetInputsAction(\n  value: unknown,\n): value is IResetInputsAction {\n  const obj = value as IResetInputsAction;\n  return typeof obj === 'object' && obj.type === 'Action.ResetInputs';\n}\n\nexport type ResetInputsActionOptions = Partial<\n  Omit<IResetInputsAction, 'type'>\n>;\n\n/**\n * Resets the values of the inputs in the card.\n */\nexport class ResetInputsAction implements IResetInputsAction {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Action.ResetInputs**.\n   */\n  readonly type = 'Action.ResetInputs';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The title of the action, as it appears on buttons.\n   */\n  title?: string;\n  /**\n   * A URL (or Base64-encoded Data URI) to a PNG, GIF, JPEG or SVG image to be displayed on the left of the action's title.\n   *\n   * `iconUrl` also accepts the `<icon-name>[,regular|filled]` format to display an icon from the vast [Adaptive Card icon catalog](https://adaptivecards.microsoft.com/?topic=icon-catalog) instead of an image.\n   */\n  iconUrl?: string;\n  /**\n   * Control the style of the action, affecting its visual and spoken representations.\n   */\n  style?: ActionStyle = 'default';\n  /**\n   * Controls if the action is primary or secondary. Secondary actions appear in an overflow menu.\n   */\n  mode?: ActionMode = 'primary';\n  /**\n   * The tooltip text to display when the action is hovered over.\n   */\n  tooltip?: string;\n  /**\n   * Controls the enabled state of the action. A disabled action cannot be clicked. If the action is represented as a button, the button's style will reflect this state.\n   */\n  isEnabled?: boolean = true;\n  /**\n   * The actions to display in the overflow menu of a Split action button.\n   */\n  menuActions?: MenuActionArray;\n  /**\n   * A set of theme-specific icon URLs.\n   */\n  themedIconUrls?: IThemedUrl[];\n  /**\n   * The Ids of the inputs that should be reset.\n   */\n  targetInputIds?: string[];\n  /**\n   * An alternate action to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackAction;\n\n  constructor(options: ResetInputsActionOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<IResetInputsAction, 'type'>): ResetInputsAction {\n    return new ResetInputsAction(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withTitle(title: string): this {\n    this.title = title;\n    return this;\n  }\n\n  withIconUrl(iconUrl: string): this {\n    this.iconUrl = iconUrl;\n    return this;\n  }\n\n  withStyle(style: ActionStyle): this {\n    this.style = style;\n    return this;\n  }\n\n  withMode(mode: ActionMode): this {\n    this.mode = mode;\n    return this;\n  }\n\n  withTooltip(tooltip: string): this {\n    this.tooltip = tooltip;\n    return this;\n  }\n\n  withIsEnabled(isEnabled = false): this {\n    this.isEnabled = isEnabled;\n    return this;\n  }\n\n  withMenuActions(...menuActions: MenuActionArray): this {\n    this.menuActions = menuActions;\n    return this;\n  }\n\n  withThemedIconUrls(...themedIconUrls: IThemedUrl[]): this {\n    this.themedIconUrls = themedIconUrls;\n    return this;\n  }\n\n  withTargetInputIds(...targetInputIds: string[]): this {\n    this.targetInputIds = targetInputIds;\n    return this;\n  }\n\n  withFallback(fallback: FallbackAction): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * Gathers input values, merges them with the data property if specified, and sends them to the Bot via an Invoke activity. The Bot can only acknowledge is has received the request.\n */\nexport interface ISubmitAction {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Action.Submit**.\n   */\n  readonly type: 'Action.Submit';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The title of the action, as it appears on buttons.\n   */\n  title?: string;\n  /**\n   * A URL (or Base64-encoded Data URI) to a PNG, GIF, JPEG or SVG image to be displayed on the left of the action's title.\n   *\n   * `iconUrl` also accepts the `<icon-name>[,regular|filled]` format to display an icon from the vast [Adaptive Card icon catalog](https://adaptivecards.microsoft.com/?topic=icon-catalog) instead of an image.\n   */\n  iconUrl?: string;\n  /**\n   * Control the style of the action, affecting its visual and spoken representations.\n   */\n  style?: ActionStyle;\n  /**\n   * Controls if the action is primary or secondary. Secondary actions appear in an overflow menu.\n   */\n  mode?: ActionMode;\n  /**\n   * The tooltip text to display when the action is hovered over.\n   */\n  tooltip?: string;\n  /**\n   * Controls the enabled state of the action. A disabled action cannot be clicked. If the action is represented as a button, the button's style will reflect this state.\n   */\n  isEnabled?: boolean;\n  /**\n   * The actions to display in the overflow menu of a Split action button.\n   */\n  menuActions?: MenuActionArray;\n  /**\n   * A set of theme-specific icon URLs.\n   */\n  themedIconUrls?: IThemedUrl[];\n  /**\n   * The data to send to the Bot when the action is executed. When expressed as an object, `data` is sent back to the Bot when the action is executed, adorned with the values of the inputs expressed as key/value pairs, where the key is the Id of the input. If `data` is expressed as a string, input values are not sent to the Bot.\n   */\n  data?: string | ISubmitActionData;\n  /**\n   * The Ids of the inputs associated with the Action.Submit. When the action is executed, the values of the associated inputs are sent to the Bot. See [Input validation](https://adaptivecards.microsoft.com/?topic=input-validation) for more details.\n   */\n  associatedInputs?: AssociatedInputs;\n  /**\n   * Controls if the action is enabled only if at least one required input has been filled by the user.\n   */\n  conditionallyEnabled?: boolean;\n  /**\n   * Teams-specific metadata associated with the action.\n   */\n  msteams?: ITeamsSubmitActionProperties;\n  /**\n   * An alternate action to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackAction;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type ISubmitAction.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of SubmitAction, false otherwise.\n */\nexport function isSubmitAction(value: unknown): value is ISubmitAction {\n  const obj = value as ISubmitAction;\n  return typeof obj === 'object' && obj.type === 'Action.Submit';\n}\n\nexport type SubmitActionOptions = Partial<Omit<ISubmitAction, 'type'>>;\n\n/**\n * Gathers input values, merges them with the data property if specified, and sends them to the Bot via an Invoke activity. The Bot can only acknowledge is has received the request.\n */\nexport class SubmitAction implements ISubmitAction {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Action.Submit**.\n   */\n  readonly type = 'Action.Submit';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The title of the action, as it appears on buttons.\n   */\n  title?: string;\n  /**\n   * A URL (or Base64-encoded Data URI) to a PNG, GIF, JPEG or SVG image to be displayed on the left of the action's title.\n   *\n   * `iconUrl` also accepts the `<icon-name>[,regular|filled]` format to display an icon from the vast [Adaptive Card icon catalog](https://adaptivecards.microsoft.com/?topic=icon-catalog) instead of an image.\n   */\n  iconUrl?: string;\n  /**\n   * Control the style of the action, affecting its visual and spoken representations.\n   */\n  style?: ActionStyle = 'default';\n  /**\n   * Controls if the action is primary or secondary. Secondary actions appear in an overflow menu.\n   */\n  mode?: ActionMode = 'primary';\n  /**\n   * The tooltip text to display when the action is hovered over.\n   */\n  tooltip?: string;\n  /**\n   * Controls the enabled state of the action. A disabled action cannot be clicked. If the action is represented as a button, the button's style will reflect this state.\n   */\n  isEnabled?: boolean = true;\n  /**\n   * The actions to display in the overflow menu of a Split action button.\n   */\n  menuActions?: MenuActionArray;\n  /**\n   * A set of theme-specific icon URLs.\n   */\n  themedIconUrls?: IThemedUrl[];\n  /**\n   * The data to send to the Bot when the action is executed. When expressed as an object, `data` is sent back to the Bot when the action is executed, adorned with the values of the inputs expressed as key/value pairs, where the key is the Id of the input. If `data` is expressed as a string, input values are not sent to the Bot.\n   */\n  data?: string | ISubmitActionData;\n  /**\n   * The Ids of the inputs associated with the Action.Submit. When the action is executed, the values of the associated inputs are sent to the Bot. See [Input validation](https://adaptivecards.microsoft.com/?topic=input-validation) for more details.\n   */\n  associatedInputs?: AssociatedInputs;\n  /**\n   * Controls if the action is enabled only if at least one required input has been filled by the user.\n   */\n  conditionallyEnabled?: boolean = false;\n  /**\n   * Teams-specific metadata associated with the action.\n   */\n  msteams?: ITeamsSubmitActionProperties;\n  /**\n   * An alternate action to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackAction;\n\n  constructor(options: SubmitActionOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<ISubmitAction, 'type'>): SubmitAction {\n    return new SubmitAction(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withTitle(title: string): this {\n    this.title = title;\n    return this;\n  }\n\n  withIconUrl(iconUrl: string): this {\n    this.iconUrl = iconUrl;\n    return this;\n  }\n\n  withStyle(style: ActionStyle): this {\n    this.style = style;\n    return this;\n  }\n\n  withMode(mode: ActionMode): this {\n    this.mode = mode;\n    return this;\n  }\n\n  withTooltip(tooltip: string): this {\n    this.tooltip = tooltip;\n    return this;\n  }\n\n  withIsEnabled(isEnabled = false): this {\n    this.isEnabled = isEnabled;\n    return this;\n  }\n\n  withMenuActions(...menuActions: MenuActionArray): this {\n    this.menuActions = menuActions;\n    return this;\n  }\n\n  withThemedIconUrls(...themedIconUrls: IThemedUrl[]): this {\n    this.themedIconUrls = themedIconUrls;\n    return this;\n  }\n\n  withData(data: string | ISubmitActionData): this {\n    this.data = data;\n    return this;\n  }\n\n  withAssociatedInputs(associatedInputs: AssociatedInputs): this {\n    this.associatedInputs = associatedInputs;\n    return this;\n  }\n\n  withConditionallyEnabled(conditionallyEnabled = true): this {\n    this.conditionallyEnabled = conditionallyEnabled;\n    return this;\n  }\n\n  withMsteams(msteams: ITeamsSubmitActionProperties): this {\n    this.msteams = msteams;\n    return this;\n  }\n\n  withFallback(fallback: FallbackAction): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * Toggles the visibility of a set of elements. Action.ToggleVisibility is useful for creating \"Show more\" type UI patterns.\n */\nexport interface IToggleVisibilityAction {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Action.ToggleVisibility**.\n   */\n  readonly type: 'Action.ToggleVisibility';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The title of the action, as it appears on buttons.\n   */\n  title?: string;\n  /**\n   * A URL (or Base64-encoded Data URI) to a PNG, GIF, JPEG or SVG image to be displayed on the left of the action's title.\n   *\n   * `iconUrl` also accepts the `<icon-name>[,regular|filled]` format to display an icon from the vast [Adaptive Card icon catalog](https://adaptivecards.microsoft.com/?topic=icon-catalog) instead of an image.\n   */\n  iconUrl?: string;\n  /**\n   * Control the style of the action, affecting its visual and spoken representations.\n   */\n  style?: ActionStyle;\n  /**\n   * Controls if the action is primary or secondary. Secondary actions appear in an overflow menu.\n   */\n  mode?: ActionMode;\n  /**\n   * The tooltip text to display when the action is hovered over.\n   */\n  tooltip?: string;\n  /**\n   * Controls the enabled state of the action. A disabled action cannot be clicked. If the action is represented as a button, the button's style will reflect this state.\n   */\n  isEnabled?: boolean;\n  /**\n   * The actions to display in the overflow menu of a Split action button.\n   */\n  menuActions?: MenuActionArray;\n  /**\n   * A set of theme-specific icon URLs.\n   */\n  themedIconUrls?: IThemedUrl[];\n  /**\n   * The Ids of the elements to toggle the visibility of.\n   */\n  targetElements?: (string | ITargetElement)[];\n  /**\n   * An alternate action to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackAction;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IToggleVisibilityAction.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of ToggleVisibilityAction, false otherwise.\n */\nexport function isToggleVisibilityAction(\n  value: unknown,\n): value is IToggleVisibilityAction {\n  const obj = value as IToggleVisibilityAction;\n  return typeof obj === 'object' && obj.type === 'Action.ToggleVisibility';\n}\n\nexport type ToggleVisibilityActionOptions = Partial<\n  Omit<IToggleVisibilityAction, 'type'>\n>;\n\n/**\n * Toggles the visibility of a set of elements. Action.ToggleVisibility is useful for creating \"Show more\" type UI patterns.\n */\nexport class ToggleVisibilityAction implements IToggleVisibilityAction {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Action.ToggleVisibility**.\n   */\n  readonly type = 'Action.ToggleVisibility';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The title of the action, as it appears on buttons.\n   */\n  title?: string;\n  /**\n   * A URL (or Base64-encoded Data URI) to a PNG, GIF, JPEG or SVG image to be displayed on the left of the action's title.\n   *\n   * `iconUrl` also accepts the `<icon-name>[,regular|filled]` format to display an icon from the vast [Adaptive Card icon catalog](https://adaptivecards.microsoft.com/?topic=icon-catalog) instead of an image.\n   */\n  iconUrl?: string;\n  /**\n   * Control the style of the action, affecting its visual and spoken representations.\n   */\n  style?: ActionStyle = 'default';\n  /**\n   * Controls if the action is primary or secondary. Secondary actions appear in an overflow menu.\n   */\n  mode?: ActionMode = 'primary';\n  /**\n   * The tooltip text to display when the action is hovered over.\n   */\n  tooltip?: string;\n  /**\n   * Controls the enabled state of the action. A disabled action cannot be clicked. If the action is represented as a button, the button's style will reflect this state.\n   */\n  isEnabled?: boolean = true;\n  /**\n   * The actions to display in the overflow menu of a Split action button.\n   */\n  menuActions?: MenuActionArray;\n  /**\n   * A set of theme-specific icon URLs.\n   */\n  themedIconUrls?: IThemedUrl[];\n  /**\n   * The Ids of the elements to toggle the visibility of.\n   */\n  targetElements?: (string | ITargetElement)[];\n  /**\n   * An alternate action to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackAction;\n\n  constructor(options: ToggleVisibilityActionOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(\n    options: Omit<IToggleVisibilityAction, 'type'>,\n  ): ToggleVisibilityAction {\n    return new ToggleVisibilityAction(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withTitle(title: string): this {\n    this.title = title;\n    return this;\n  }\n\n  withIconUrl(iconUrl: string): this {\n    this.iconUrl = iconUrl;\n    return this;\n  }\n\n  withStyle(style: ActionStyle): this {\n    this.style = style;\n    return this;\n  }\n\n  withMode(mode: ActionMode): this {\n    this.mode = mode;\n    return this;\n  }\n\n  withTooltip(tooltip: string): this {\n    this.tooltip = tooltip;\n    return this;\n  }\n\n  withIsEnabled(isEnabled = false): this {\n    this.isEnabled = isEnabled;\n    return this;\n  }\n\n  withMenuActions(...menuActions: MenuActionArray): this {\n    this.menuActions = menuActions;\n    return this;\n  }\n\n  withThemedIconUrls(...themedIconUrls: IThemedUrl[]): this {\n    this.themedIconUrls = themedIconUrls;\n    return this;\n  }\n\n  withTargetElements(...targetElements: (string | ITargetElement)[]): this {\n    this.targetElements = targetElements;\n    return this;\n  }\n\n  withFallback(fallback: FallbackAction): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * Defines a theme-specific URL.\n */\nexport interface IThemedUrl {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The theme this URL applies to.\n   */\n  theme?: ThemeName;\n  /**\n   * The URL to use for the associated theme.\n   */\n  url?: string;\n}\n\nexport type ThemedUrlOptions = Partial<IThemedUrl>;\n\n/**\n * Defines a theme-specific URL.\n */\nexport class ThemedUrl implements IThemedUrl {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The theme this URL applies to.\n   */\n  theme?: ThemeName = 'Light';\n  /**\n   * The URL to use for the associated theme.\n   */\n  url?: string;\n\n  constructor(options: ThemedUrlOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: IThemedUrl): ThemedUrl {\n    return new ThemedUrl(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withTheme(theme: ThemeName): this {\n    this.theme = theme;\n    return this;\n  }\n\n  withUrl(url: string): this {\n    this.url = url;\n    return this;\n  }\n}\n\n/**\n * Defines a target element in an Action.ToggleVisibility.\n */\nexport interface ITargetElement {\n  /**\n   * The Id of the element to change the visibility of.\n   */\n  elementId?: string;\n  /**\n   * The new visibility state of the element.\n   */\n  isVisible?: boolean;\n}\n\nexport type TargetElementOptions = Partial<ITargetElement>;\n\n/**\n * Defines a target element in an Action.ToggleVisibility.\n */\nexport class TargetElement implements ITargetElement {\n  /**\n   * The Id of the element to change the visibility of.\n   */\n  elementId?: string;\n  /**\n   * The new visibility state of the element.\n   */\n  isVisible?: boolean;\n\n  constructor(options: TargetElementOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: ITargetElement): TargetElement {\n    return new TargetElement(options);\n  }\n\n  withElementId(elementId: string): this {\n    this.elementId = elementId;\n    return this;\n  }\n\n  withIsVisible(isVisible: boolean): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n}\n\n/**\n * Expands or collapses an embedded card within the main card.\n */\nexport interface IShowCardAction {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Action.ShowCard**.\n   */\n  readonly type: 'Action.ShowCard';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The title of the action, as it appears on buttons.\n   */\n  title?: string;\n  /**\n   * A URL (or Base64-encoded Data URI) to a PNG, GIF, JPEG or SVG image to be displayed on the left of the action's title.\n   *\n   * `iconUrl` also accepts the `<icon-name>[,regular|filled]` format to display an icon from the vast [Adaptive Card icon catalog](https://adaptivecards.microsoft.com/?topic=icon-catalog) instead of an image.\n   */\n  iconUrl?: string;\n  /**\n   * Control the style of the action, affecting its visual and spoken representations.\n   */\n  style?: ActionStyle;\n  /**\n   * Controls if the action is primary or secondary. Secondary actions appear in an overflow menu.\n   */\n  mode?: ActionMode;\n  /**\n   * The tooltip text to display when the action is hovered over.\n   */\n  tooltip?: string;\n  /**\n   * Controls the enabled state of the action. A disabled action cannot be clicked. If the action is represented as a button, the button's style will reflect this state.\n   */\n  isEnabled?: boolean;\n  /**\n   * The actions to display in the overflow menu of a Split action button.\n   */\n  menuActions?: MenuActionArray;\n  /**\n   * A set of theme-specific icon URLs.\n   */\n  themedIconUrls?: IThemedUrl[];\n  /**\n   * An alternate action to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackAction;\n  /**\n   * The card that should be displayed when the action is executed.\n   */\n  card?: IAdaptiveCard;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IShowCardAction.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of ShowCardAction, false otherwise.\n */\nexport function isShowCardAction(value: unknown): value is IShowCardAction {\n  const obj = value as IShowCardAction;\n  return typeof obj === 'object' && obj.type === 'Action.ShowCard';\n}\n\nexport type ShowCardActionOptions = Partial<Omit<IShowCardAction, 'type'>>;\n\n/**\n * Expands or collapses an embedded card within the main card.\n */\nexport class ShowCardAction implements IShowCardAction {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Action.ShowCard**.\n   */\n  readonly type = 'Action.ShowCard';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The title of the action, as it appears on buttons.\n   */\n  title?: string;\n  /**\n   * A URL (or Base64-encoded Data URI) to a PNG, GIF, JPEG or SVG image to be displayed on the left of the action's title.\n   *\n   * `iconUrl` also accepts the `<icon-name>[,regular|filled]` format to display an icon from the vast [Adaptive Card icon catalog](https://adaptivecards.microsoft.com/?topic=icon-catalog) instead of an image.\n   */\n  iconUrl?: string;\n  /**\n   * Control the style of the action, affecting its visual and spoken representations.\n   */\n  style?: ActionStyle = 'default';\n  /**\n   * Controls if the action is primary or secondary. Secondary actions appear in an overflow menu.\n   */\n  mode?: ActionMode = 'primary';\n  /**\n   * The tooltip text to display when the action is hovered over.\n   */\n  tooltip?: string;\n  /**\n   * Controls the enabled state of the action. A disabled action cannot be clicked. If the action is represented as a button, the button's style will reflect this state.\n   */\n  isEnabled?: boolean = true;\n  /**\n   * The actions to display in the overflow menu of a Split action button.\n   */\n  menuActions?: MenuActionArray;\n  /**\n   * A set of theme-specific icon URLs.\n   */\n  themedIconUrls?: IThemedUrl[];\n  /**\n   * An alternate action to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackAction;\n  /**\n   * The card that should be displayed when the action is executed.\n   */\n  card?: IAdaptiveCard;\n\n  constructor(options: ShowCardActionOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<IShowCardAction, 'type'>): ShowCardAction {\n    return new ShowCardAction(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withTitle(title: string): this {\n    this.title = title;\n    return this;\n  }\n\n  withIconUrl(iconUrl: string): this {\n    this.iconUrl = iconUrl;\n    return this;\n  }\n\n  withStyle(style: ActionStyle): this {\n    this.style = style;\n    return this;\n  }\n\n  withMode(mode: ActionMode): this {\n    this.mode = mode;\n    return this;\n  }\n\n  withTooltip(tooltip: string): this {\n    this.tooltip = tooltip;\n    return this;\n  }\n\n  withIsEnabled(isEnabled = false): this {\n    this.isEnabled = isEnabled;\n    return this;\n  }\n\n  withMenuActions(...menuActions: MenuActionArray): this {\n    this.menuActions = menuActions;\n    return this;\n  }\n\n  withThemedIconUrls(...themedIconUrls: IThemedUrl[]): this {\n    this.themedIconUrls = themedIconUrls;\n    return this;\n  }\n\n  withFallback(fallback: FallbackAction): this {\n    this.fallback = fallback;\n    return this;\n  }\n\n  withCard(card: IAdaptiveCard): this {\n    this.card = card;\n    return this;\n  }\n}\n\n/**\n * Shows a popover to display more information to the user.\n */\nexport interface IPopoverAction {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Action.Popover**.\n   */\n  readonly type: 'Action.Popover';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The title of the action, as it appears on buttons.\n   */\n  title?: string;\n  /**\n   * A URL (or Base64-encoded Data URI) to a PNG, GIF, JPEG or SVG image to be displayed on the left of the action's title.\n   *\n   * `iconUrl` also accepts the `<icon-name>[,regular|filled]` format to display an icon from the vast [Adaptive Card icon catalog](https://adaptivecards.microsoft.com/?topic=icon-catalog) instead of an image.\n   */\n  iconUrl?: string;\n  /**\n   * Control the style of the action, affecting its visual and spoken representations.\n   */\n  style?: ActionStyle;\n  /**\n   * Controls if the action is primary or secondary. Secondary actions appear in an overflow menu.\n   */\n  mode?: ActionMode;\n  /**\n   * The tooltip text to display when the action is hovered over.\n   */\n  tooltip?: string;\n  /**\n   * Controls the enabled state of the action. A disabled action cannot be clicked. If the action is represented as a button, the button's style will reflect this state.\n   */\n  isEnabled?: boolean;\n  /**\n   * A set of theme-specific icon URLs.\n   */\n  themedIconUrls?: IThemedUrl[];\n  /**\n   * The content of the popover, which can be any element.\n   */\n  content?:\n    | IActionSet\n    | IBadge\n    | ICarousel\n    | IDonutChart\n    | IGaugeChart\n    | IHorizontalBarChart\n    | IStackedHorizontalBarChart\n    | ILineChart\n    | IPieChart\n    | IVerticalBarChart\n    | IGroupedVerticalBarChart\n    | ICodeBlock\n    | IColumnSet\n    | IComEventMicrosoftGraphComponent\n    | IComFileMicrosoftGraphComponent\n    | IComResourceMicrosoftGraphComponent\n    | IComUserMicrosoftGraphComponent\n    | IComUsersMicrosoftGraphComponent\n    | ICompoundButton\n    | IContainer\n    | IFactSet\n    | IIcon\n    | IIconRun\n    | IImage\n    | IImageRun\n    | IImageSet\n    | IChoiceSetInput\n    | IDateInput\n    | INumberInput\n    | IRatingInput\n    | ITextInput\n    | ITimeInput\n    | IToggleInput\n    | IMedia\n    | IProgressBar\n    | IProgressRing\n    | IRating\n    | IRichTextBlock\n    | ITable\n    | ITextBlock\n    | ITextRun;\n  /**\n   * Controls if an arrow should be displayed towards the element that triggered the popover.\n   */\n  displayArrow?: boolean;\n  /**\n   * Controls where the popover should be displayed with regards to the element that triggered it.\n   */\n  position?: PopoverPosition;\n  /**\n   * The maximum width of the popover in pixels, in the `<number>px` format\n   */\n  maxPopoverWidth?: string;\n  /**\n   * An alternate action to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackAction;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IPopoverAction.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of PopoverAction, false otherwise.\n */\nexport function isPopoverAction(value: unknown): value is IPopoverAction {\n  const obj = value as IPopoverAction;\n  return typeof obj === 'object' && obj.type === 'Action.Popover';\n}\n\nexport type PopoverActionOptions = Partial<Omit<IPopoverAction, 'type'>>;\n\n/**\n * Shows a popover to display more information to the user.\n */\nexport class PopoverAction implements IPopoverAction {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Action.Popover**.\n   */\n  readonly type = 'Action.Popover';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The title of the action, as it appears on buttons.\n   */\n  title?: string;\n  /**\n   * A URL (or Base64-encoded Data URI) to a PNG, GIF, JPEG or SVG image to be displayed on the left of the action's title.\n   *\n   * `iconUrl` also accepts the `<icon-name>[,regular|filled]` format to display an icon from the vast [Adaptive Card icon catalog](https://adaptivecards.microsoft.com/?topic=icon-catalog) instead of an image.\n   */\n  iconUrl?: string;\n  /**\n   * Control the style of the action, affecting its visual and spoken representations.\n   */\n  style?: ActionStyle = 'default';\n  /**\n   * Controls if the action is primary or secondary. Secondary actions appear in an overflow menu.\n   */\n  mode?: ActionMode = 'primary';\n  /**\n   * The tooltip text to display when the action is hovered over.\n   */\n  tooltip?: string;\n  /**\n   * Controls the enabled state of the action. A disabled action cannot be clicked. If the action is represented as a button, the button's style will reflect this state.\n   */\n  isEnabled?: boolean = true;\n  /**\n   * A set of theme-specific icon URLs.\n   */\n  themedIconUrls?: IThemedUrl[];\n  /**\n   * The content of the popover, which can be any element.\n   */\n  content?:\n    | IActionSet\n    | IBadge\n    | ICarousel\n    | IDonutChart\n    | IGaugeChart\n    | IHorizontalBarChart\n    | IStackedHorizontalBarChart\n    | ILineChart\n    | IPieChart\n    | IVerticalBarChart\n    | IGroupedVerticalBarChart\n    | ICodeBlock\n    | IColumnSet\n    | IComEventMicrosoftGraphComponent\n    | IComFileMicrosoftGraphComponent\n    | IComResourceMicrosoftGraphComponent\n    | IComUserMicrosoftGraphComponent\n    | IComUsersMicrosoftGraphComponent\n    | ICompoundButton\n    | IContainer\n    | IFactSet\n    | IIcon\n    | IIconRun\n    | IImage\n    | IImageRun\n    | IImageSet\n    | IChoiceSetInput\n    | IDateInput\n    | INumberInput\n    | IRatingInput\n    | ITextInput\n    | ITimeInput\n    | IToggleInput\n    | IMedia\n    | IProgressBar\n    | IProgressRing\n    | IRating\n    | IRichTextBlock\n    | ITable\n    | ITextBlock\n    | ITextRun;\n  /**\n   * Controls if an arrow should be displayed towards the element that triggered the popover.\n   */\n  displayArrow?: boolean = true;\n  /**\n   * Controls where the popover should be displayed with regards to the element that triggered it.\n   */\n  position?: PopoverPosition = 'Above';\n  /**\n   * The maximum width of the popover in pixels, in the `<number>px` format\n   */\n  maxPopoverWidth?: string;\n  /**\n   * An alternate action to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackAction;\n\n  constructor(options: PopoverActionOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<IPopoverAction, 'type'>): PopoverAction {\n    return new PopoverAction(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withTitle(title: string): this {\n    this.title = title;\n    return this;\n  }\n\n  withIconUrl(iconUrl: string): this {\n    this.iconUrl = iconUrl;\n    return this;\n  }\n\n  withStyle(style: ActionStyle): this {\n    this.style = style;\n    return this;\n  }\n\n  withMode(mode: ActionMode): this {\n    this.mode = mode;\n    return this;\n  }\n\n  withTooltip(tooltip: string): this {\n    this.tooltip = tooltip;\n    return this;\n  }\n\n  withIsEnabled(isEnabled = false): this {\n    this.isEnabled = isEnabled;\n    return this;\n  }\n\n  withThemedIconUrls(...themedIconUrls: IThemedUrl[]): this {\n    this.themedIconUrls = themedIconUrls;\n    return this;\n  }\n\n  withContent(\n    content:\n      | IActionSet\n      | IBadge\n      | ICarousel\n      | IDonutChart\n      | IGaugeChart\n      | IHorizontalBarChart\n      | IStackedHorizontalBarChart\n      | ILineChart\n      | IPieChart\n      | IVerticalBarChart\n      | IGroupedVerticalBarChart\n      | ICodeBlock\n      | IColumnSet\n      | IComEventMicrosoftGraphComponent\n      | IComFileMicrosoftGraphComponent\n      | IComResourceMicrosoftGraphComponent\n      | IComUserMicrosoftGraphComponent\n      | IComUsersMicrosoftGraphComponent\n      | ICompoundButton\n      | IContainer\n      | IFactSet\n      | IIcon\n      | IIconRun\n      | IImage\n      | IImageRun\n      | IImageSet\n      | IChoiceSetInput\n      | IDateInput\n      | INumberInput\n      | IRatingInput\n      | ITextInput\n      | ITimeInput\n      | IToggleInput\n      | IMedia\n      | IProgressBar\n      | IProgressRing\n      | IRating\n      | IRichTextBlock\n      | ITable\n      | ITextBlock\n      | ITextRun,\n  ): this {\n    this.content = content;\n    return this;\n  }\n\n  withDisplayArrow(displayArrow = false): this {\n    this.displayArrow = displayArrow;\n    return this;\n  }\n\n  withPosition(position: PopoverPosition): this {\n    this.position = position;\n    return this;\n  }\n\n  withMaxPopoverWidth(maxPopoverWidth: string): this {\n    this.maxPopoverWidth = maxPopoverWidth;\n    return this;\n  }\n\n  withFallback(fallback: FallbackAction): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * Displays a set of action, which can be placed anywhere in the card.\n */\nexport interface IActionSet {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **ActionSet**.\n   */\n  readonly type: 'ActionSet';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n  /**\n   * The actions in the set.\n   */\n  actions: ActionArray;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IActionSet.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of ActionSet, false otherwise.\n */\nexport function isActionSet(value: unknown): value is IActionSet {\n  const obj = value as IActionSet;\n  return typeof obj === 'object' && obj.type === 'ActionSet';\n}\n\nexport type ActionSetOptions = Partial<Omit<IActionSet, 'type' | 'actions'>>;\n\n/**\n * Displays a set of action, which can be placed anywhere in the card.\n */\nexport class ActionSet implements IActionSet {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **ActionSet**.\n   */\n  readonly type = 'ActionSet';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n  /**\n   * The actions in the set.\n   */\n  actions: ActionArray;\n\n  constructor(...actions: ActionArray) {\n    this.actions = actions;\n  }\n\n  withOptions(value: ActionSetOptions): this {\n    Object.assign(this, value);\n    return this;\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withHorizontalAlignment(horizontalAlignment: HorizontalAlignment): this {\n    this.horizontalAlignment = horizontalAlignment;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n\n  withActions(...actions: ActionArray): this {\n    this.actions = actions;\n    return this;\n  }\n}\n\n/**\n * A container for other elements. Use containers for styling purposes and/or to logically group a set of elements together, which can be especially useful when used with Action.ToggleVisibility.\n */\nexport interface IContainer {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Container**.\n   */\n  readonly type: 'Container';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * An Action that will be invoked when the element is tapped or clicked. Action.ShowCard is not supported.\n   */\n  selectAction?:\n    | IExecuteAction\n    | IInsertImageAction\n    | IOpenUrlAction\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction\n    | ISubmitAction\n    | IToggleVisibilityAction;\n  /**\n   * The style of the container. Container styles control the colors of the background, border and text inside the container, in such a way that contrast requirements are always met.\n   */\n  style?: ContainerStyle;\n  /**\n   * Controls if a border should be displayed around the container.\n   */\n  showBorder?: boolean;\n  /**\n   * Controls if the container should have rounded corners.\n   */\n  roundedCorners?: boolean;\n  /**\n   * The layouts associated with the container. The container can dynamically switch from one layout to another as the card's width changes. See [Container layouts](https://adaptivecards.microsoft.com/?topic=container-layouts) for more details.\n   */\n  layouts?: (IStackLayout | IFlowLayout | IAreaGridLayout)[];\n  /**\n   * Controls if the container should bleed into its parent. A bleeding container extends into its parent's padding.\n   */\n  bleed?: boolean;\n  /**\n   * The minimum height, in pixels, of the container, in the `<number>px` format.\n   */\n  minHeight?: string;\n  /**\n   * Defines the container's background image.\n   */\n  backgroundImage?: string | IBackgroundImage;\n  /**\n   * Controls how the container's content should be vertically aligned.\n   */\n  verticalContentAlignment?: VerticalAlignment;\n  /**\n   * Controls if the content of the card is to be rendered left-to-right or right-to-left.\n   */\n  rtl?: boolean;\n  /**\n   * The maximum height, in pixels, of the container, in the `<number>px` format. When the content of a container exceeds the container's maximum height, a vertical scrollbar is displayed.\n   */\n  maxHeight?: string;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n  /**\n   * The elements in the container.\n   */\n  items: CardElementArray;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IContainer.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of Container, false otherwise.\n */\nexport function isContainer(value: unknown): value is IContainer {\n  const obj = value as IContainer;\n  return typeof obj === 'object' && obj.type === 'Container';\n}\n\nexport type ContainerOptions = Partial<Omit<IContainer, 'type' | 'items'>>;\n\n/**\n * A container for other elements. Use containers for styling purposes and/or to logically group a set of elements together, which can be especially useful when used with Action.ToggleVisibility.\n */\nexport class Container implements IContainer {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Container**.\n   */\n  readonly type = 'Container';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * An Action that will be invoked when the element is tapped or clicked. Action.ShowCard is not supported.\n   */\n  selectAction?:\n    | IExecuteAction\n    | IInsertImageAction\n    | IOpenUrlAction\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction\n    | ISubmitAction\n    | IToggleVisibilityAction;\n  /**\n   * The style of the container. Container styles control the colors of the background, border and text inside the container, in such a way that contrast requirements are always met.\n   */\n  style?: ContainerStyle;\n  /**\n   * Controls if a border should be displayed around the container.\n   */\n  showBorder?: boolean = false;\n  /**\n   * Controls if the container should have rounded corners.\n   */\n  roundedCorners?: boolean = false;\n  /**\n   * The layouts associated with the container. The container can dynamically switch from one layout to another as the card's width changes. See [Container layouts](https://adaptivecards.microsoft.com/?topic=container-layouts) for more details.\n   */\n  layouts?: (IStackLayout | IFlowLayout | IAreaGridLayout)[];\n  /**\n   * Controls if the container should bleed into its parent. A bleeding container extends into its parent's padding.\n   */\n  bleed?: boolean = false;\n  /**\n   * The minimum height, in pixels, of the container, in the `<number>px` format.\n   */\n  minHeight?: string;\n  /**\n   * Defines the container's background image.\n   */\n  backgroundImage?: string | IBackgroundImage;\n  /**\n   * Controls how the container's content should be vertically aligned.\n   */\n  verticalContentAlignment?: VerticalAlignment;\n  /**\n   * Controls if the content of the card is to be rendered left-to-right or right-to-left.\n   */\n  rtl?: boolean;\n  /**\n   * The maximum height, in pixels, of the container, in the `<number>px` format. When the content of a container exceeds the container's maximum height, a vertical scrollbar is displayed.\n   */\n  maxHeight?: string;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n  /**\n   * The elements in the container.\n   */\n  items: CardElementArray;\n\n  constructor(...items: CardElementArray) {\n    this.items = items;\n  }\n\n  withOptions(value: ContainerOptions): this {\n    Object.assign(this, value);\n    return this;\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withHorizontalAlignment(horizontalAlignment: HorizontalAlignment): this {\n    this.horizontalAlignment = horizontalAlignment;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withSelectAction(\n    selectAction:\n      | IExecuteAction\n      | IInsertImageAction\n      | IOpenUrlAction\n      | IOpenUrlDialogAction\n      | IPopoverAction\n      | IResetInputsAction\n      | ISubmitAction\n      | IToggleVisibilityAction,\n  ): this {\n    this.selectAction = selectAction;\n    return this;\n  }\n\n  withStyle(style: ContainerStyle): this {\n    this.style = style;\n    return this;\n  }\n\n  withShowBorder(showBorder = true): this {\n    this.showBorder = showBorder;\n    return this;\n  }\n\n  withRoundedCorners(roundedCorners = true): this {\n    this.roundedCorners = roundedCorners;\n    return this;\n  }\n\n  withLayouts(\n    ...layouts: (IStackLayout | IFlowLayout | IAreaGridLayout)[]\n  ): this {\n    this.layouts = layouts;\n    return this;\n  }\n\n  withBleed(bleed = true): this {\n    this.bleed = bleed;\n    return this;\n  }\n\n  withMinHeight(minHeight: string): this {\n    this.minHeight = minHeight;\n    return this;\n  }\n\n  withBackgroundImage(backgroundImage: string | IBackgroundImage): this {\n    this.backgroundImage = backgroundImage;\n    return this;\n  }\n\n  withVerticalContentAlignment(\n    verticalContentAlignment: VerticalAlignment,\n  ): this {\n    this.verticalContentAlignment = verticalContentAlignment;\n    return this;\n  }\n\n  withRtl(rtl: boolean): this {\n    this.rtl = rtl;\n    return this;\n  }\n\n  withMaxHeight(maxHeight: string): this {\n    this.maxHeight = maxHeight;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n\n  withItems(...items: CardElementArray): this {\n    this.items = items;\n    return this;\n  }\n}\n\n/**\n * A layout that stacks elements on top of each other. Layout.Stack is the default layout used by AdaptiveCard and all containers.\n */\nexport interface IStackLayout {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Layout.Stack**.\n   */\n  readonly type: 'Layout.Stack';\n  /**\n   * Controls for which card width the layout should be used.\n   */\n  targetWidth?: TargetWidth;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IStackLayout.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of StackLayout, false otherwise.\n */\nexport function isStackLayout(value: unknown): value is IStackLayout {\n  const obj = value as IStackLayout;\n  return typeof obj === 'object' && obj.type === 'Layout.Stack';\n}\n\nexport type StackLayoutOptions = Partial<Omit<IStackLayout, 'type'>>;\n\n/**\n * A layout that stacks elements on top of each other. Layout.Stack is the default layout used by AdaptiveCard and all containers.\n */\nexport class StackLayout implements IStackLayout {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Layout.Stack**.\n   */\n  readonly type = 'Layout.Stack';\n  /**\n   * Controls for which card width the layout should be used.\n   */\n  targetWidth?: TargetWidth;\n\n  constructor(options: StackLayoutOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<IStackLayout, 'type'>): StackLayout {\n    return new StackLayout(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n}\n\n/**\n * A layout that spreads elements horizontally and wraps them across multiple rows, as needed.\n */\nexport interface IFlowLayout {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Layout.Flow**.\n   */\n  readonly type: 'Layout.Flow';\n  /**\n   * Controls for which card width the layout should be used.\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls how the content of the container should be horizontally aligned.\n   */\n  horizontalItemsAlignment?: HorizontalAlignment;\n  /**\n   * Controls how the content of the container should be vertically aligned.\n   */\n  verticalItemsAlignment?: VerticalAlignment;\n  /**\n   * Controls how item should fit inside the container.\n   */\n  itemFit?: FlowLayoutItemFit;\n  /**\n   * The minimum width, in pixels, of each item, in the `<number>px` format. Should not be used if itemWidth is set.\n   */\n  minItemWidth?: string;\n  /**\n   * The maximum width, in pixels, of each item, in the `<number>px` format. Should not be used if itemWidth is set.\n   */\n  maxItemWidth?: string;\n  /**\n   * The width, in pixels, of each item, in the `<number>px` format. Should not be used if maxItemWidth and/or minItemWidth are set.\n   */\n  itemWidth?: string;\n  /**\n   * The space between items.\n   */\n  columnSpacing?: Spacing;\n  /**\n   * The space between rows of items.\n   */\n  rowSpacing?: Spacing;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IFlowLayout.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of FlowLayout, false otherwise.\n */\nexport function isFlowLayout(value: unknown): value is IFlowLayout {\n  const obj = value as IFlowLayout;\n  return typeof obj === 'object' && obj.type === 'Layout.Flow';\n}\n\nexport type FlowLayoutOptions = Partial<Omit<IFlowLayout, 'type'>>;\n\n/**\n * A layout that spreads elements horizontally and wraps them across multiple rows, as needed.\n */\nexport class FlowLayout implements IFlowLayout {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Layout.Flow**.\n   */\n  readonly type = 'Layout.Flow';\n  /**\n   * Controls for which card width the layout should be used.\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls how the content of the container should be horizontally aligned.\n   */\n  horizontalItemsAlignment?: HorizontalAlignment = 'Center';\n  /**\n   * Controls how the content of the container should be vertically aligned.\n   */\n  verticalItemsAlignment?: VerticalAlignment = 'Top';\n  /**\n   * Controls how item should fit inside the container.\n   */\n  itemFit?: FlowLayoutItemFit = 'Fit';\n  /**\n   * The minimum width, in pixels, of each item, in the `<number>px` format. Should not be used if itemWidth is set.\n   */\n  minItemWidth?: string;\n  /**\n   * The maximum width, in pixels, of each item, in the `<number>px` format. Should not be used if itemWidth is set.\n   */\n  maxItemWidth?: string;\n  /**\n   * The width, in pixels, of each item, in the `<number>px` format. Should not be used if maxItemWidth and/or minItemWidth are set.\n   */\n  itemWidth?: string;\n  /**\n   * The space between items.\n   */\n  columnSpacing?: Spacing = 'Default';\n  /**\n   * The space between rows of items.\n   */\n  rowSpacing?: Spacing = 'Default';\n\n  constructor(options: FlowLayoutOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<IFlowLayout, 'type'>): FlowLayout {\n    return new FlowLayout(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withHorizontalItemsAlignment(\n    horizontalItemsAlignment: HorizontalAlignment,\n  ): this {\n    this.horizontalItemsAlignment = horizontalItemsAlignment;\n    return this;\n  }\n\n  withVerticalItemsAlignment(verticalItemsAlignment: VerticalAlignment): this {\n    this.verticalItemsAlignment = verticalItemsAlignment;\n    return this;\n  }\n\n  withItemFit(itemFit: FlowLayoutItemFit): this {\n    this.itemFit = itemFit;\n    return this;\n  }\n\n  withMinItemWidth(minItemWidth: string): this {\n    this.minItemWidth = minItemWidth;\n    return this;\n  }\n\n  withMaxItemWidth(maxItemWidth: string): this {\n    this.maxItemWidth = maxItemWidth;\n    return this;\n  }\n\n  withItemWidth(itemWidth: string): this {\n    this.itemWidth = itemWidth;\n    return this;\n  }\n\n  withColumnSpacing(columnSpacing: Spacing): this {\n    this.columnSpacing = columnSpacing;\n    return this;\n  }\n\n  withRowSpacing(rowSpacing: Spacing): this {\n    this.rowSpacing = rowSpacing;\n    return this;\n  }\n}\n\n/**\n * A layout that divides a container into named areas into which elements can be placed.\n */\nexport interface IAreaGridLayout {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Layout.AreaGrid**.\n   */\n  readonly type: 'Layout.AreaGrid';\n  /**\n   * Controls for which card width the layout should be used.\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * The columns in the grid layout, defined as a percentage of the available width or in pixels using the `<number>px` format.\n   */\n  columns?: (number | string)[];\n  /**\n   * The areas in the grid layout.\n   */\n  areas?: IGridArea[];\n  /**\n   * The space between columns.\n   */\n  columnSpacing?: Spacing;\n  /**\n   * The space between rows.\n   */\n  rowSpacing?: Spacing;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IAreaGridLayout.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of AreaGridLayout, false otherwise.\n */\nexport function isAreaGridLayout(value: unknown): value is IAreaGridLayout {\n  const obj = value as IAreaGridLayout;\n  return typeof obj === 'object' && obj.type === 'Layout.AreaGrid';\n}\n\nexport type AreaGridLayoutOptions = Partial<Omit<IAreaGridLayout, 'type'>>;\n\n/**\n * A layout that divides a container into named areas into which elements can be placed.\n */\nexport class AreaGridLayout implements IAreaGridLayout {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Layout.AreaGrid**.\n   */\n  readonly type = 'Layout.AreaGrid';\n  /**\n   * Controls for which card width the layout should be used.\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * The columns in the grid layout, defined as a percentage of the available width or in pixels using the `<number>px` format.\n   */\n  columns?: (number | string)[];\n  /**\n   * The areas in the grid layout.\n   */\n  areas?: IGridArea[];\n  /**\n   * The space between columns.\n   */\n  columnSpacing?: Spacing = 'Default';\n  /**\n   * The space between rows.\n   */\n  rowSpacing?: Spacing = 'Default';\n\n  constructor(options: AreaGridLayoutOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<IAreaGridLayout, 'type'>): AreaGridLayout {\n    return new AreaGridLayout(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withColumns(...columns: (number | string)[]): this {\n    this.columns = columns;\n    return this;\n  }\n\n  withAreas(...areas: IGridArea[]): this {\n    this.areas = areas;\n    return this;\n  }\n\n  withColumnSpacing(columnSpacing: Spacing): this {\n    this.columnSpacing = columnSpacing;\n    return this;\n  }\n\n  withRowSpacing(rowSpacing: Spacing): this {\n    this.rowSpacing = rowSpacing;\n    return this;\n  }\n}\n\n/**\n * Defines an area in a Layout.AreaGrid layout.\n */\nexport interface IGridArea {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The name of the area. To place an element in this area, set its `grid.area` property to match the name of the area.\n   */\n  name?: string;\n  /**\n   * The start column index of the area. Column indices start at 1.\n   */\n  column?: number;\n  /**\n   * Defines how many columns the area should span.\n   */\n  columnSpan?: number;\n  /**\n   * The start row index of the area. Row indices start at 1.\n   */\n  row?: number;\n  /**\n   * Defines how many rows the area should span.\n   */\n  rowSpan?: number;\n}\n\nexport type GridAreaOptions = Partial<IGridArea>;\n\n/**\n * Defines an area in a Layout.AreaGrid layout.\n */\nexport class GridArea implements IGridArea {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The name of the area. To place an element in this area, set its `grid.area` property to match the name of the area.\n   */\n  name?: string;\n  /**\n   * The start column index of the area. Column indices start at 1.\n   */\n  column?: number = 1;\n  /**\n   * Defines how many columns the area should span.\n   */\n  columnSpan?: number = 1;\n  /**\n   * The start row index of the area. Row indices start at 1.\n   */\n  row?: number = 1;\n  /**\n   * Defines how many rows the area should span.\n   */\n  rowSpan?: number = 1;\n\n  constructor(options: GridAreaOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: IGridArea): GridArea {\n    return new GridArea(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withName(name: string): this {\n    this.name = name;\n    return this;\n  }\n\n  withColumn(column: number): this {\n    this.column = column;\n    return this;\n  }\n\n  withColumnSpan(columnSpan: number): this {\n    this.columnSpan = columnSpan;\n    return this;\n  }\n\n  withRow(row: number): this {\n    this.row = row;\n    return this;\n  }\n\n  withRowSpan(rowSpan: number): this {\n    this.rowSpan = rowSpan;\n    return this;\n  }\n}\n\n/**\n * Defines a container's background image and the way it should be rendered.\n */\nexport interface IBackgroundImage {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The URL (or Base64-encoded Data URI) of the image. Acceptable formats are PNG, JPEG, GIF and SVG.\n   */\n  url?: string;\n  /**\n   * Controls how the image should fill the area.\n   */\n  fillMode?: FillMode;\n  /**\n   * Controls how the image should be aligned if it must be cropped or if using repeat fill mode.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls how the image should be aligned if it must be cropped or if using repeat fill mode.\n   */\n  verticalAlignment?: VerticalAlignment;\n  /**\n   * A set of theme-specific image URLs.\n   */\n  themedUrls?: IThemedUrl[];\n}\n\nexport type BackgroundImageOptions = Partial<IBackgroundImage>;\n\n/**\n * Defines a container's background image and the way it should be rendered.\n */\nexport class BackgroundImage implements IBackgroundImage {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The URL (or Base64-encoded Data URI) of the image. Acceptable formats are PNG, JPEG, GIF and SVG.\n   */\n  url?: string;\n  /**\n   * Controls how the image should fill the area.\n   */\n  fillMode?: FillMode = 'Cover';\n  /**\n   * Controls how the image should be aligned if it must be cropped or if using repeat fill mode.\n   */\n  horizontalAlignment?: HorizontalAlignment = 'Left';\n  /**\n   * Controls how the image should be aligned if it must be cropped or if using repeat fill mode.\n   */\n  verticalAlignment?: VerticalAlignment = 'Top';\n  /**\n   * A set of theme-specific image URLs.\n   */\n  themedUrls?: IThemedUrl[];\n\n  constructor(options: BackgroundImageOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: IBackgroundImage): BackgroundImage {\n    return new BackgroundImage(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withUrl(url: string): this {\n    this.url = url;\n    return this;\n  }\n\n  withFillMode(fillMode: FillMode): this {\n    this.fillMode = fillMode;\n    return this;\n  }\n\n  withHorizontalAlignment(horizontalAlignment: HorizontalAlignment): this {\n    this.horizontalAlignment = horizontalAlignment;\n    return this;\n  }\n\n  withVerticalAlignment(verticalAlignment: VerticalAlignment): this {\n    this.verticalAlignment = verticalAlignment;\n    return this;\n  }\n\n  withThemedUrls(...themedUrls: IThemedUrl[]): this {\n    this.themedUrls = themedUrls;\n    return this;\n  }\n}\n\n/**\n * Splits the available horizontal space into separate columns, so elements can be organized in a row.\n */\nexport interface IColumnSet {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **ColumnSet**.\n   */\n  readonly type: 'ColumnSet';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * An Action that will be invoked when the element is tapped or clicked. Action.ShowCard is not supported.\n   */\n  selectAction?:\n    | IExecuteAction\n    | IInsertImageAction\n    | IOpenUrlAction\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction\n    | ISubmitAction\n    | IToggleVisibilityAction;\n  /**\n   * The style of the container. Container styles control the colors of the background, border and text inside the container, in such a way that contrast requirements are always met.\n   */\n  style?: ContainerStyle;\n  /**\n   * Controls if a border should be displayed around the container.\n   */\n  showBorder?: boolean;\n  /**\n   * Controls if the container should have rounded corners.\n   */\n  roundedCorners?: boolean;\n  /**\n   * Controls if the container should bleed into its parent. A bleeding container extends into its parent's padding.\n   */\n  bleed?: boolean;\n  /**\n   * The minimum height, in pixels, of the container, in the `<number>px` format.\n   */\n  minHeight?: string;\n  /**\n   * The minimum width of the column set. `auto` will automatically adjust the column set's minimum width according to its content and using the `<number>px` format will give the column set an explicit minimum width in pixels. A scrollbar will be displayed if the available width is less than the specified minimum width.\n   */\n  minWidth?: 'auto' | string;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n  /**\n   * The columns in the set.\n   */\n  columns?: ColumnArray;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IColumnSet.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of ColumnSet, false otherwise.\n */\nexport function isColumnSet(value: unknown): value is IColumnSet {\n  const obj = value as IColumnSet;\n  return typeof obj === 'object' && obj.type === 'ColumnSet';\n}\n\nexport type ColumnSetOptions = Partial<Omit<IColumnSet, 'type'>>;\n\n/**\n * Splits the available horizontal space into separate columns, so elements can be organized in a row.\n */\nexport class ColumnSet implements IColumnSet {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **ColumnSet**.\n   */\n  readonly type = 'ColumnSet';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * An Action that will be invoked when the element is tapped or clicked. Action.ShowCard is not supported.\n   */\n  selectAction?:\n    | IExecuteAction\n    | IInsertImageAction\n    | IOpenUrlAction\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction\n    | ISubmitAction\n    | IToggleVisibilityAction;\n  /**\n   * The style of the container. Container styles control the colors of the background, border and text inside the container, in such a way that contrast requirements are always met.\n   */\n  style?: ContainerStyle;\n  /**\n   * Controls if a border should be displayed around the container.\n   */\n  showBorder?: boolean = false;\n  /**\n   * Controls if the container should have rounded corners.\n   */\n  roundedCorners?: boolean = false;\n  /**\n   * Controls if the container should bleed into its parent. A bleeding container extends into its parent's padding.\n   */\n  bleed?: boolean = false;\n  /**\n   * The minimum height, in pixels, of the container, in the `<number>px` format.\n   */\n  minHeight?: string;\n  /**\n   * The minimum width of the column set. `auto` will automatically adjust the column set's minimum width according to its content and using the `<number>px` format will give the column set an explicit minimum width in pixels. A scrollbar will be displayed if the available width is less than the specified minimum width.\n   */\n  minWidth?: 'auto' | string;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n  /**\n   * The columns in the set.\n   */\n  columns?: ColumnArray;\n\n  constructor(options: ColumnSetOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<IColumnSet, 'type'>): ColumnSet {\n    return new ColumnSet(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withHorizontalAlignment(horizontalAlignment: HorizontalAlignment): this {\n    this.horizontalAlignment = horizontalAlignment;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withSelectAction(\n    selectAction:\n      | IExecuteAction\n      | IInsertImageAction\n      | IOpenUrlAction\n      | IOpenUrlDialogAction\n      | IPopoverAction\n      | IResetInputsAction\n      | ISubmitAction\n      | IToggleVisibilityAction,\n  ): this {\n    this.selectAction = selectAction;\n    return this;\n  }\n\n  withStyle(style: ContainerStyle): this {\n    this.style = style;\n    return this;\n  }\n\n  withShowBorder(showBorder = true): this {\n    this.showBorder = showBorder;\n    return this;\n  }\n\n  withRoundedCorners(roundedCorners = true): this {\n    this.roundedCorners = roundedCorners;\n    return this;\n  }\n\n  withBleed(bleed = true): this {\n    this.bleed = bleed;\n    return this;\n  }\n\n  withMinHeight(minHeight: string): this {\n    this.minHeight = minHeight;\n    return this;\n  }\n\n  withMinWidth(minWidth: 'auto' | string): this {\n    this.minWidth = minWidth;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n\n  withColumns(...columns: ColumnArray): this {\n    this.columns = columns;\n    return this;\n  }\n}\n\n/**\n * A media element, that makes it possible to embed videos inside a card.\n */\nexport interface IMedia {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Media**.\n   */\n  readonly type: 'Media';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * The sources for the media. For YouTube, Dailymotion and Vimeo, only one source can be specified.\n   */\n  sources?: IMediaSource[];\n  /**\n   * The caption sources for the media. Caption sources are not used for YouTube, Dailymotion or Vimeo sources.\n   */\n  captionSources?: ICaptionSource[];\n  /**\n   * The URL of the poster image to display.\n   */\n  poster?: string;\n  /**\n   * The alternate text for the media, used for accessibility purposes.\n   */\n  altText?: string;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IMedia.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of Media, false otherwise.\n */\nexport function isMedia(value: unknown): value is IMedia {\n  const obj = value as IMedia;\n  return typeof obj === 'object' && obj.type === 'Media';\n}\n\nexport type MediaOptions = Partial<Omit<IMedia, 'type'>>;\n\n/**\n * A media element, that makes it possible to embed videos inside a card.\n */\nexport class Media implements IMedia {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Media**.\n   */\n  readonly type = 'Media';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * The sources for the media. For YouTube, Dailymotion and Vimeo, only one source can be specified.\n   */\n  sources?: IMediaSource[];\n  /**\n   * The caption sources for the media. Caption sources are not used for YouTube, Dailymotion or Vimeo sources.\n   */\n  captionSources?: ICaptionSource[];\n  /**\n   * The URL of the poster image to display.\n   */\n  poster?: string;\n  /**\n   * The alternate text for the media, used for accessibility purposes.\n   */\n  altText?: string;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(options: MediaOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<IMedia, 'type'>): Media {\n    return new Media(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withSources(...sources: IMediaSource[]): this {\n    this.sources = sources;\n    return this;\n  }\n\n  withCaptionSources(...captionSources: ICaptionSource[]): this {\n    this.captionSources = captionSources;\n    return this;\n  }\n\n  withPoster(poster: string): this {\n    this.poster = poster;\n    return this;\n  }\n\n  withAltText(altText: string): this {\n    this.altText = altText;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * Defines the source URL of a media stream. YouTube, Dailymotion, Vimeo and Microsoft Stream URLs are supported.\n */\nexport interface IMediaSource {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The MIME type of the source.\n   */\n  mimeType?: string;\n  /**\n   * The URL of the source.\n   */\n  url?: string;\n}\n\nexport type MediaSourceOptions = Partial<IMediaSource>;\n\n/**\n * Defines the source URL of a media stream. YouTube, Dailymotion, Vimeo and Microsoft Stream URLs are supported.\n */\nexport class MediaSource implements IMediaSource {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The MIME type of the source.\n   */\n  mimeType?: string;\n  /**\n   * The URL of the source.\n   */\n  url?: string;\n\n  constructor(options: MediaSourceOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: IMediaSource): MediaSource {\n    return new MediaSource(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withMimeType(mimeType: string): this {\n    this.mimeType = mimeType;\n    return this;\n  }\n\n  withUrl(url: string): this {\n    this.url = url;\n    return this;\n  }\n}\n\n/**\n * Defines a source URL for a video captions.\n */\nexport interface ICaptionSource {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The MIME type of the source.\n   */\n  mimeType?: string;\n  /**\n   * The URL of the source.\n   */\n  url?: string;\n  /**\n   * The label of this caption source.\n   */\n  label?: string;\n}\n\nexport type CaptionSourceOptions = Partial<ICaptionSource>;\n\n/**\n * Defines a source URL for a video captions.\n */\nexport class CaptionSource implements ICaptionSource {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The MIME type of the source.\n   */\n  mimeType?: string;\n  /**\n   * The URL of the source.\n   */\n  url?: string;\n  /**\n   * The label of this caption source.\n   */\n  label?: string;\n\n  constructor(options: CaptionSourceOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: ICaptionSource): CaptionSource {\n    return new CaptionSource(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withMimeType(mimeType: string): this {\n    this.mimeType = mimeType;\n    return this;\n  }\n\n  withUrl(url: string): this {\n    this.url = url;\n    return this;\n  }\n\n  withLabel(label: string): this {\n    this.label = label;\n    return this;\n  }\n}\n\n/**\n * A rich text block that displays formatted text.\n */\nexport interface IRichTextBlock {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **RichTextBlock**.\n   */\n  readonly type: 'RichTextBlock';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * The Id of the input the RichTextBlock should act as the label of.\n   */\n  labelFor?: string;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n  /**\n   * The inlines making up the rich text block.\n   */\n  inlines?: RichTextBlockInlineArray;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IRichTextBlock.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of RichTextBlock, false otherwise.\n */\nexport function isRichTextBlock(value: unknown): value is IRichTextBlock {\n  const obj = value as IRichTextBlock;\n  return typeof obj === 'object' && obj.type === 'RichTextBlock';\n}\n\nexport type RichTextBlockOptions = Partial<Omit<IRichTextBlock, 'type'>>;\n\n/**\n * A rich text block that displays formatted text.\n */\nexport class RichTextBlock implements IRichTextBlock {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **RichTextBlock**.\n   */\n  readonly type = 'RichTextBlock';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * The Id of the input the RichTextBlock should act as the label of.\n   */\n  labelFor?: string;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n  /**\n   * The inlines making up the rich text block.\n   */\n  inlines?: RichTextBlockInlineArray;\n\n  constructor(options: RichTextBlockOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<IRichTextBlock, 'type'>): RichTextBlock {\n    return new RichTextBlock(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withHorizontalAlignment(horizontalAlignment: HorizontalAlignment): this {\n    this.horizontalAlignment = horizontalAlignment;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withLabelFor(labelFor: string): this {\n    this.labelFor = labelFor;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n\n  withInlines(...inlines: RichTextBlockInlineArray): this {\n    this.inlines = inlines;\n    return this;\n  }\n}\n\n/**\n * Use tables to display data in a tabular way, with rows, columns and cells.\n */\nexport interface ITable {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Table**.\n   */\n  readonly type: 'Table';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * The style of the container. Container styles control the colors of the background, border and text inside the container, in such a way that contrast requirements are always met.\n   */\n  style?: ContainerStyle;\n  /**\n   * Controls if a border should be displayed around the container.\n   */\n  showBorder?: boolean;\n  /**\n   * Controls if the container should have rounded corners.\n   */\n  roundedCorners?: boolean;\n  /**\n   * The columns in the table.\n   */\n  columns?: IColumnDefinition[];\n  /**\n   * The minimum width of the table in pixels. `auto` will automatically adjust the table's minimum width according to its content and using the `<number>px` format will give the table an explicit minimum width in pixels. A scrollbar will be displayed if the available width is less than the specified minimum width.\n   */\n  minWidth?: 'auto' | string;\n  /**\n   * Controls whether the first row of the table should be treated as a header.\n   */\n  firstRowAsHeaders?: boolean;\n  /**\n   * Controls if grid lines should be displayed.\n   */\n  showGridLines?: boolean;\n  /**\n   * The style of the grid lines between cells.\n   */\n  gridStyle?: ContainerStyle;\n  /**\n   * Controls how the content of every cell in the table should be horizontally aligned by default.\n   */\n  horizontalCellContentAlignment?: HorizontalAlignment;\n  /**\n   * Controls how the content of every cell in the table should be vertically aligned by default.\n   */\n  verticalCellContentAlignment?: VerticalAlignment;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n  /**\n   * The rows of the table.\n   */\n  rows?: TableRowArray;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type ITable.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of Table, false otherwise.\n */\nexport function isTable(value: unknown): value is ITable {\n  const obj = value as ITable;\n  return typeof obj === 'object' && obj.type === 'Table';\n}\n\nexport type TableOptions = Partial<Omit<ITable, 'type'>>;\n\n/**\n * Use tables to display data in a tabular way, with rows, columns and cells.\n */\nexport class Table implements ITable {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Table**.\n   */\n  readonly type = 'Table';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * The style of the container. Container styles control the colors of the background, border and text inside the container, in such a way that contrast requirements are always met.\n   */\n  style?: ContainerStyle;\n  /**\n   * Controls if a border should be displayed around the container.\n   */\n  showBorder?: boolean = false;\n  /**\n   * Controls if the container should have rounded corners.\n   */\n  roundedCorners?: boolean = false;\n  /**\n   * The columns in the table.\n   */\n  columns?: IColumnDefinition[];\n  /**\n   * The minimum width of the table in pixels. `auto` will automatically adjust the table's minimum width according to its content and using the `<number>px` format will give the table an explicit minimum width in pixels. A scrollbar will be displayed if the available width is less than the specified minimum width.\n   */\n  minWidth?: 'auto' | string;\n  /**\n   * Controls whether the first row of the table should be treated as a header.\n   */\n  firstRowAsHeaders?: boolean = true;\n  /**\n   * Controls if grid lines should be displayed.\n   */\n  showGridLines?: boolean = true;\n  /**\n   * The style of the grid lines between cells.\n   */\n  gridStyle?: ContainerStyle;\n  /**\n   * Controls how the content of every cell in the table should be horizontally aligned by default.\n   */\n  horizontalCellContentAlignment?: HorizontalAlignment;\n  /**\n   * Controls how the content of every cell in the table should be vertically aligned by default.\n   */\n  verticalCellContentAlignment?: VerticalAlignment;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n  /**\n   * The rows of the table.\n   */\n  rows?: TableRowArray;\n\n  constructor(options: TableOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<ITable, 'type'>): Table {\n    return new Table(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withHorizontalAlignment(horizontalAlignment: HorizontalAlignment): this {\n    this.horizontalAlignment = horizontalAlignment;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withStyle(style: ContainerStyle): this {\n    this.style = style;\n    return this;\n  }\n\n  withShowBorder(showBorder = true): this {\n    this.showBorder = showBorder;\n    return this;\n  }\n\n  withRoundedCorners(roundedCorners = true): this {\n    this.roundedCorners = roundedCorners;\n    return this;\n  }\n\n  withColumns(...columns: IColumnDefinition[]): this {\n    this.columns = columns;\n    return this;\n  }\n\n  withMinWidth(minWidth: 'auto' | string): this {\n    this.minWidth = minWidth;\n    return this;\n  }\n\n  withFirstRowAsHeaders(firstRowAsHeaders = false): this {\n    this.firstRowAsHeaders = firstRowAsHeaders;\n    return this;\n  }\n\n  withShowGridLines(showGridLines = false): this {\n    this.showGridLines = showGridLines;\n    return this;\n  }\n\n  withGridStyle(gridStyle: ContainerStyle): this {\n    this.gridStyle = gridStyle;\n    return this;\n  }\n\n  withHorizontalCellContentAlignment(\n    horizontalCellContentAlignment: HorizontalAlignment,\n  ): this {\n    this.horizontalCellContentAlignment = horizontalCellContentAlignment;\n    return this;\n  }\n\n  withVerticalCellContentAlignment(\n    verticalCellContentAlignment: VerticalAlignment,\n  ): this {\n    this.verticalCellContentAlignment = verticalCellContentAlignment;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n\n  withRows(...rows: TableRowArray): this {\n    this.rows = rows;\n    return this;\n  }\n}\n\n/**\n * Defines a column in a Table element.\n */\nexport interface IColumnDefinition {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Controls how the content of every cell in the table should be horizontally aligned by default. This property overrides the horizontalCellContentAlignment property of the table.\n   */\n  horizontalCellContentAlignment?: HorizontalAlignment;\n  /**\n   * Controls how the content of every cell in the column should be vertically aligned by default. This property overrides the verticalCellContentAlignment property of the table.\n   */\n  verticalCellContentAlignment?: VerticalAlignment;\n  /**\n   * The width of the column in the table. If expressed as a number, represents the relative weight of the column in the table. If expressed as a string, `auto` will automatically adjust the column's width according to its content and using the `<number>px` format will give the column an explicit width in pixels.\n   */\n  width?: 'auto' | string | number;\n}\n\nexport type ColumnDefinitionOptions = Partial<IColumnDefinition>;\n\n/**\n * Defines a column in a Table element.\n */\nexport class ColumnDefinition implements IColumnDefinition {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Controls how the content of every cell in the table should be horizontally aligned by default. This property overrides the horizontalCellContentAlignment property of the table.\n   */\n  horizontalCellContentAlignment?: HorizontalAlignment;\n  /**\n   * Controls how the content of every cell in the column should be vertically aligned by default. This property overrides the verticalCellContentAlignment property of the table.\n   */\n  verticalCellContentAlignment?: VerticalAlignment;\n  /**\n   * The width of the column in the table. If expressed as a number, represents the relative weight of the column in the table. If expressed as a string, `auto` will automatically adjust the column's width according to its content and using the `<number>px` format will give the column an explicit width in pixels.\n   */\n  width?: 'auto' | string | number;\n\n  constructor(options: ColumnDefinitionOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: IColumnDefinition): ColumnDefinition {\n    return new ColumnDefinition(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withHorizontalCellContentAlignment(\n    horizontalCellContentAlignment: HorizontalAlignment,\n  ): this {\n    this.horizontalCellContentAlignment = horizontalCellContentAlignment;\n    return this;\n  }\n\n  withVerticalCellContentAlignment(\n    verticalCellContentAlignment: VerticalAlignment,\n  ): this {\n    this.verticalCellContentAlignment = verticalCellContentAlignment;\n    return this;\n  }\n\n  withWidth(width: 'auto' | string | number): this {\n    this.width = width;\n    return this;\n  }\n}\n\n/**\n * A block of text, optionally formatted using Markdown.\n */\nexport interface ITextBlock {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **TextBlock**.\n   */\n  readonly type: 'TextBlock';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * The text to display. A subset of markdown is supported.\n   */\n  text: string;\n  /**\n   * The size of the text.\n   */\n  size?: TextSize;\n  /**\n   * The weight of the text.\n   */\n  weight?: TextWeight;\n  /**\n   * The color of the text.\n   */\n  color?: TextColor;\n  /**\n   * Controls whether the text should be renderer using a subtler variant of the select color.\n   */\n  isSubtle?: boolean;\n  /**\n   * The type of font to use for rendering.\n   */\n  fontType?: FontType;\n  /**\n   * Controls if the text should wrap.\n   */\n  wrap?: boolean;\n  /**\n   * The maximum number of lines to display.\n   */\n  maxLines?: number;\n  /**\n   * The style of the text.\n   */\n  style?: TextBlockStyle;\n  /**\n   * The Id of the input the TextBlock should act as the label of.\n   */\n  labelFor?: string;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type ITextBlock.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of TextBlock, false otherwise.\n */\nexport function isTextBlock(value: unknown): value is ITextBlock {\n  const obj = value as ITextBlock;\n  return typeof obj === 'object' && obj.type === 'TextBlock';\n}\n\nexport type TextBlockOptions = Partial<Omit<ITextBlock, 'type' | 'text'>>;\n\n/**\n * A block of text, optionally formatted using Markdown.\n */\nexport class TextBlock implements ITextBlock {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **TextBlock**.\n   */\n  readonly type = 'TextBlock';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * The text to display. A subset of markdown is supported.\n   */\n  text: string;\n  /**\n   * The size of the text.\n   */\n  size?: TextSize;\n  /**\n   * The weight of the text.\n   */\n  weight?: TextWeight;\n  /**\n   * The color of the text.\n   */\n  color?: TextColor;\n  /**\n   * Controls whether the text should be renderer using a subtler variant of the select color.\n   */\n  isSubtle?: boolean;\n  /**\n   * The type of font to use for rendering.\n   */\n  fontType?: FontType;\n  /**\n   * Controls if the text should wrap.\n   */\n  wrap?: boolean = false;\n  /**\n   * The maximum number of lines to display.\n   */\n  maxLines?: number;\n  /**\n   * The style of the text.\n   */\n  style?: TextBlockStyle;\n  /**\n   * The Id of the input the TextBlock should act as the label of.\n   */\n  labelFor?: string;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(text: string, options: TextBlockOptions = {}) {\n    Object.assign(this, options);\n    this.text = text;\n  }\n\n  static from(options: Omit<ITextBlock, 'type'>): TextBlock {\n    return new TextBlock(options.text, options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withHorizontalAlignment(horizontalAlignment: HorizontalAlignment): this {\n    this.horizontalAlignment = horizontalAlignment;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withText(text: string): this {\n    this.text = text;\n    return this;\n  }\n\n  withSize(size: TextSize): this {\n    this.size = size;\n    return this;\n  }\n\n  withWeight(weight: TextWeight): this {\n    this.weight = weight;\n    return this;\n  }\n\n  withColor(color: TextColor): this {\n    this.color = color;\n    return this;\n  }\n\n  withIsSubtle(isSubtle: boolean): this {\n    this.isSubtle = isSubtle;\n    return this;\n  }\n\n  withFontType(fontType: FontType): this {\n    this.fontType = fontType;\n    return this;\n  }\n\n  withWrap(wrap = true): this {\n    this.wrap = wrap;\n    return this;\n  }\n\n  withMaxLines(maxLines: number): this {\n    this.maxLines = maxLines;\n    return this;\n  }\n\n  withStyle(style: TextBlockStyle): this {\n    this.style = style;\n    return this;\n  }\n\n  withLabelFor(labelFor: string): this {\n    this.labelFor = labelFor;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * A set of facts, displayed as a table or a vertical list when horizontal space is constrained.\n */\nexport interface IFactSet {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **FactSet**.\n   */\n  readonly type: 'FactSet';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * The facts in the set.\n   */\n  facts: IFact[];\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IFactSet.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of FactSet, false otherwise.\n */\nexport function isFactSet(value: unknown): value is IFactSet {\n  const obj = value as IFactSet;\n  return typeof obj === 'object' && obj.type === 'FactSet';\n}\n\nexport type FactSetOptions = Partial<Omit<IFactSet, 'type' | 'facts'>>;\n\n/**\n * A set of facts, displayed as a table or a vertical list when horizontal space is constrained.\n */\nexport class FactSet implements IFactSet {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **FactSet**.\n   */\n  readonly type = 'FactSet';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * The facts in the set.\n   */\n  facts: IFact[];\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(...facts: IFact[]) {\n    this.facts = facts;\n  }\n\n  withOptions(value: FactSetOptions): this {\n    Object.assign(this, value);\n    return this;\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withFacts(...facts: IFact[]): this {\n    this.facts = facts;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * A fact in a FactSet element.\n */\nexport interface IFact {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The fact's title.\n   */\n  title: string;\n  /**\n   * The fact's value.\n   */\n  value: string;\n}\n\nexport type FactOptions = Partial<IFact>;\n\n/**\n * A fact in a FactSet element.\n */\nexport class Fact implements IFact {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The fact's title.\n   */\n  title: string;\n  /**\n   * The fact's value.\n   */\n  value: string;\n\n  constructor(title: string, value: string, options: FactOptions = {}) {\n    Object.assign(this, options);\n    this.title = title;\n    this.value = value;\n  }\n\n  static from(options: IFact): Fact {\n    return new Fact(options.title, options.value, options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withTitle(title: string): this {\n    this.title = title;\n    return this;\n  }\n\n  withValue(value: string): this {\n    this.value = value;\n    return this;\n  }\n}\n\n/**\n * A set of images, displayed side-by-side and wrapped across multiple rows as needed.\n */\nexport interface IImageSet {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **ImageSet**.\n   */\n  readonly type: 'ImageSet';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * The images in the set.\n   */\n  images: IImage[];\n  /**\n   * The size to use to render all images in the set.\n   */\n  imageSize?: ImageSize;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IImageSet.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of ImageSet, false otherwise.\n */\nexport function isImageSet(value: unknown): value is IImageSet {\n  const obj = value as IImageSet;\n  return typeof obj === 'object' && obj.type === 'ImageSet';\n}\n\nexport type ImageSetOptions = Partial<Omit<IImageSet, 'type' | 'images'>>;\n\n/**\n * A set of images, displayed side-by-side and wrapped across multiple rows as needed.\n */\nexport class ImageSet implements IImageSet {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **ImageSet**.\n   */\n  readonly type = 'ImageSet';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * The images in the set.\n   */\n  images: IImage[];\n  /**\n   * The size to use to render all images in the set.\n   */\n  imageSize?: ImageSize = 'Medium';\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(...images: IImage[]) {\n    this.images = images;\n  }\n\n  withOptions(value: ImageSetOptions): this {\n    Object.assign(this, value);\n    return this;\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withHorizontalAlignment(horizontalAlignment: HorizontalAlignment): this {\n    this.horizontalAlignment = horizontalAlignment;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withImages(...images: IImage[]): this {\n    this.images = images;\n    return this;\n  }\n\n  withImageSize(imageSize: ImageSize): this {\n    this.imageSize = imageSize;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * A standalone image element.\n */\nexport interface IImage {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Image**.\n   */\n  readonly type: 'Image';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * The URL (or Base64-encoded Data URI) of the image. Acceptable formats are PNG, JPEG, GIF and SVG.\n   */\n  url: string;\n  /**\n   * The alternate text for the image, used for accessibility purposes.\n   */\n  altText?: string;\n  /**\n   * The background color of the image.\n   */\n  backgroundColor?: string;\n  /**\n   * The style of the image.\n   */\n  style?: ImageStyle;\n  /**\n   * The size of the image.\n   */\n  size?: Size;\n  /**\n   * The width of the image.\n   */\n  width?: 'auto' | 'stretch' | string;\n  /**\n   * An Action that will be invoked when the image is tapped or clicked. Action.ShowCard is not supported.\n   */\n  selectAction?:\n    | IExecuteAction\n    | IInsertImageAction\n    | IOpenUrlAction\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction\n    | ISubmitAction\n    | IToggleVisibilityAction;\n  /**\n   * Controls if the image can be expanded to full screen.\n   */\n  allowExpand?: boolean;\n  /**\n   * Teams-specific metadata associated with the image.\n   */\n  msteams?: ITeamsImageProperties;\n  /**\n   * A set of theme-specific image URLs.\n   */\n  themedUrls?: IThemedUrl[];\n  /**\n   * Controls how the image should be fitted inside its bounding box. imageFit is only meaningful when both the width and height properties are set. When fitMode is set to contain, the default style is always used.\n   */\n  fitMode?: ImageFitMode;\n  /**\n   * Controls the horizontal position of the image within its bounding box. horizontalContentAlignment is only meaningful when both the width and height properties are set and fitMode is set to either cover or contain.\n   */\n  horizontalContentAlignment?: HorizontalAlignment;\n  /**\n   * Controls the vertical position of the image within its bounding box. verticalContentAlignment is only meaningful when both the width and height properties are set and fitMode is set to either cover or contain.\n   */\n  verticalContentAlignment?: VerticalAlignment;\n  /**\n   * The height of the image.\n   */\n  height?: 'auto' | 'stretch' | string;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IImage.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of Image, false otherwise.\n */\nexport function isImage(value: unknown): value is IImage {\n  const obj = value as IImage;\n  return typeof obj === 'object' && obj.type === 'Image';\n}\n\nexport type ImageOptions = Partial<Omit<IImage, 'type' | 'url'>>;\n\n/**\n * A standalone image element.\n */\nexport class Image implements IImage {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Image**.\n   */\n  readonly type = 'Image';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * The URL (or Base64-encoded Data URI) of the image. Acceptable formats are PNG, JPEG, GIF and SVG.\n   */\n  url: string;\n  /**\n   * The alternate text for the image, used for accessibility purposes.\n   */\n  altText?: string;\n  /**\n   * The background color of the image.\n   */\n  backgroundColor?: string;\n  /**\n   * The style of the image.\n   */\n  style?: ImageStyle = 'Default';\n  /**\n   * The size of the image.\n   */\n  size?: Size = 'Auto';\n  /**\n   * The width of the image.\n   */\n  width?: 'auto' | 'stretch' | string = 'auto';\n  /**\n   * An Action that will be invoked when the image is tapped or clicked. Action.ShowCard is not supported.\n   */\n  selectAction?:\n    | IExecuteAction\n    | IInsertImageAction\n    | IOpenUrlAction\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction\n    | ISubmitAction\n    | IToggleVisibilityAction;\n  /**\n   * Controls if the image can be expanded to full screen.\n   */\n  allowExpand?: boolean = false;\n  /**\n   * Teams-specific metadata associated with the image.\n   */\n  msteams?: ITeamsImageProperties;\n  /**\n   * A set of theme-specific image URLs.\n   */\n  themedUrls?: IThemedUrl[];\n  /**\n   * Controls how the image should be fitted inside its bounding box. imageFit is only meaningful when both the width and height properties are set. When fitMode is set to contain, the default style is always used.\n   */\n  fitMode?: ImageFitMode = 'Fill';\n  /**\n   * Controls the horizontal position of the image within its bounding box. horizontalContentAlignment is only meaningful when both the width and height properties are set and fitMode is set to either cover or contain.\n   */\n  horizontalContentAlignment?: HorizontalAlignment = 'Left';\n  /**\n   * Controls the vertical position of the image within its bounding box. verticalContentAlignment is only meaningful when both the width and height properties are set and fitMode is set to either cover or contain.\n   */\n  verticalContentAlignment?: VerticalAlignment = 'Top';\n  /**\n   * The height of the image.\n   */\n  height?: 'auto' | 'stretch' | string = 'auto';\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(url: string, options: ImageOptions = {}) {\n    Object.assign(this, options);\n    this.url = url;\n  }\n\n  static from(options: Omit<IImage, 'type'>): Image {\n    return new Image(options.url, options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHorizontalAlignment(horizontalAlignment: HorizontalAlignment): this {\n    this.horizontalAlignment = horizontalAlignment;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withUrl(url: string): this {\n    this.url = url;\n    return this;\n  }\n\n  withAltText(altText: string): this {\n    this.altText = altText;\n    return this;\n  }\n\n  withBackgroundColor(backgroundColor: string): this {\n    this.backgroundColor = backgroundColor;\n    return this;\n  }\n\n  withStyle(style: ImageStyle): this {\n    this.style = style;\n    return this;\n  }\n\n  withSize(size: Size): this {\n    this.size = size;\n    return this;\n  }\n\n  withWidth(width: 'auto' | 'stretch' | string): this {\n    this.width = width;\n    return this;\n  }\n\n  withSelectAction(\n    selectAction:\n      | IExecuteAction\n      | IInsertImageAction\n      | IOpenUrlAction\n      | IOpenUrlDialogAction\n      | IPopoverAction\n      | IResetInputsAction\n      | ISubmitAction\n      | IToggleVisibilityAction,\n  ): this {\n    this.selectAction = selectAction;\n    return this;\n  }\n\n  withAllowExpand(allowExpand = true): this {\n    this.allowExpand = allowExpand;\n    return this;\n  }\n\n  withMsteams(msteams: ITeamsImageProperties): this {\n    this.msteams = msteams;\n    return this;\n  }\n\n  withThemedUrls(...themedUrls: IThemedUrl[]): this {\n    this.themedUrls = themedUrls;\n    return this;\n  }\n\n  withFitMode(fitMode: ImageFitMode): this {\n    this.fitMode = fitMode;\n    return this;\n  }\n\n  withHorizontalContentAlignment(\n    horizontalContentAlignment: HorizontalAlignment,\n  ): this {\n    this.horizontalContentAlignment = horizontalContentAlignment;\n    return this;\n  }\n\n  withVerticalContentAlignment(\n    verticalContentAlignment: VerticalAlignment,\n  ): this {\n    this.verticalContentAlignment = verticalContentAlignment;\n    return this;\n  }\n\n  withHeight(height: 'auto' | 'stretch' | string): this {\n    this.height = height;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * Represents a set of Teams-specific properties on an image.\n */\nexport interface ITeamsImageProperties {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Controls if the image is expandable in Teams. This property is equivalent to the Image.allowExpand property.\n   */\n  allowExpand?: boolean;\n}\n\nexport type TeamsImagePropertiesOptions = Partial<ITeamsImageProperties>;\n\n/**\n * Represents a set of Teams-specific properties on an image.\n */\nexport class TeamsImageProperties implements ITeamsImageProperties {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Controls if the image is expandable in Teams. This property is equivalent to the Image.allowExpand property.\n   */\n  allowExpand?: boolean;\n\n  constructor(options: TeamsImagePropertiesOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: ITeamsImageProperties): TeamsImageProperties {\n    return new TeamsImageProperties(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withAllowExpand(allowExpand: boolean): this {\n    this.allowExpand = allowExpand;\n    return this;\n  }\n}\n\n/**\n * An input to allow the user to enter text.\n */\nexport interface ITextInput {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Input.Text**.\n   */\n  readonly type: 'Input.Text';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * The label of the input.\n   *\n   * A label should **always** be provided to ensure the best user experience especially for users of assistive technology.\n   */\n  label?: string;\n  /**\n   * Controls whether the input is required. See [Input validation](https://adaptivecards.microsoft.com/?topic=input-validation) for more details.\n   */\n  isRequired?: boolean;\n  /**\n   * The error message to display when the input fails validation. See [Input validation](https://adaptivecards.microsoft.com/?topic=input-validation) for more details.\n   */\n  errorMessage?: string;\n  /**\n   * An Action.ResetInputs action that will be executed when the value of the input changes.\n   */\n  valueChangedAction?:\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction;\n  /**\n   * The default value of the input.\n   */\n  value?: string;\n  /**\n   * The maximum length of the text in the input.\n   */\n  maxLength?: number;\n  /**\n   * Controls if the input should allow multiple lines of text.\n   */\n  isMultiline?: boolean;\n  /**\n   * The text to display as a placeholder when the user hasn't entered a value.\n   */\n  placeholder?: string;\n  /**\n   * The style of the input.\n   */\n  style?: InputTextStyle;\n  /**\n   * The action that should be displayed as a button alongside the input. Action.ShowCard is not supported.\n   */\n  inlineAction?:\n    | IExecuteAction\n    | IInsertImageAction\n    | IOpenUrlAction\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction\n    | ISubmitAction\n    | IToggleVisibilityAction;\n  /**\n   * The regular expression to validate the input.\n   */\n  regex?: string;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type ITextInput.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of TextInput, false otherwise.\n */\nexport function isTextInput(value: unknown): value is ITextInput {\n  const obj = value as ITextInput;\n  return typeof obj === 'object' && obj.type === 'Input.Text';\n}\n\nexport type TextInputOptions = Partial<Omit<ITextInput, 'type'>>;\n\n/**\n * An input to allow the user to enter text.\n */\nexport class TextInput implements ITextInput {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Input.Text**.\n   */\n  readonly type = 'Input.Text';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * The label of the input.\n   *\n   * A label should **always** be provided to ensure the best user experience especially for users of assistive technology.\n   */\n  label?: string;\n  /**\n   * Controls whether the input is required. See [Input validation](https://adaptivecards.microsoft.com/?topic=input-validation) for more details.\n   */\n  isRequired?: boolean = false;\n  /**\n   * The error message to display when the input fails validation. See [Input validation](https://adaptivecards.microsoft.com/?topic=input-validation) for more details.\n   */\n  errorMessage?: string;\n  /**\n   * An Action.ResetInputs action that will be executed when the value of the input changes.\n   */\n  valueChangedAction?:\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction;\n  /**\n   * The default value of the input.\n   */\n  value?: string;\n  /**\n   * The maximum length of the text in the input.\n   */\n  maxLength?: number;\n  /**\n   * Controls if the input should allow multiple lines of text.\n   */\n  isMultiline?: boolean = false;\n  /**\n   * The text to display as a placeholder when the user hasn't entered a value.\n   */\n  placeholder?: string;\n  /**\n   * The style of the input.\n   */\n  style?: InputTextStyle = 'Text';\n  /**\n   * The action that should be displayed as a button alongside the input. Action.ShowCard is not supported.\n   */\n  inlineAction?:\n    | IExecuteAction\n    | IInsertImageAction\n    | IOpenUrlAction\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction\n    | ISubmitAction\n    | IToggleVisibilityAction;\n  /**\n   * The regular expression to validate the input.\n   */\n  regex?: string;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(options: TextInputOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<ITextInput, 'type'>): TextInput {\n    return new TextInput(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withLabel(label: string): this {\n    this.label = label;\n    return this;\n  }\n\n  withIsRequired(isRequired = true): this {\n    this.isRequired = isRequired;\n    return this;\n  }\n\n  withErrorMessage(errorMessage: string): this {\n    this.errorMessage = errorMessage;\n    return this;\n  }\n\n  withValueChangedAction(\n    valueChangedAction:\n      | IOpenUrlDialogAction\n      | IPopoverAction\n      | IResetInputsAction,\n  ): this {\n    this.valueChangedAction = valueChangedAction;\n    return this;\n  }\n\n  withValue(value: string): this {\n    this.value = value;\n    return this;\n  }\n\n  withMaxLength(maxLength: number): this {\n    this.maxLength = maxLength;\n    return this;\n  }\n\n  withIsMultiline(isMultiline = true): this {\n    this.isMultiline = isMultiline;\n    return this;\n  }\n\n  withPlaceholder(placeholder: string): this {\n    this.placeholder = placeholder;\n    return this;\n  }\n\n  withStyle(style: InputTextStyle): this {\n    this.style = style;\n    return this;\n  }\n\n  withInlineAction(\n    inlineAction:\n      | IExecuteAction\n      | IInsertImageAction\n      | IOpenUrlAction\n      | IOpenUrlDialogAction\n      | IPopoverAction\n      | IResetInputsAction\n      | ISubmitAction\n      | IToggleVisibilityAction,\n  ): this {\n    this.inlineAction = inlineAction;\n    return this;\n  }\n\n  withRegex(regex: string): this {\n    this.regex = regex;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * An input to allow the user to select a date.\n */\nexport interface IDateInput {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Input.Date**.\n   */\n  readonly type: 'Input.Date';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * The label of the input.\n   *\n   * A label should **always** be provided to ensure the best user experience especially for users of assistive technology.\n   */\n  label?: string;\n  /**\n   * Controls whether the input is required. See [Input validation](https://adaptivecards.microsoft.com/?topic=input-validation) for more details.\n   */\n  isRequired?: boolean;\n  /**\n   * The error message to display when the input fails validation. See [Input validation](https://adaptivecards.microsoft.com/?topic=input-validation) for more details.\n   */\n  errorMessage?: string;\n  /**\n   * An Action.ResetInputs action that will be executed when the value of the input changes.\n   */\n  valueChangedAction?:\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction;\n  /**\n   * The default value of the input, in the `YYYY-MM-DD` format.\n   */\n  value?: string;\n  /**\n   * The text to display as a placeholder when the user has not selected a date.\n   */\n  placeholder?: string;\n  /**\n   * The minimum date that can be selected.\n   */\n  min?: string;\n  /**\n   * The maximum date that can be selected.\n   */\n  max?: string;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IDateInput.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of DateInput, false otherwise.\n */\nexport function isDateInput(value: unknown): value is IDateInput {\n  const obj = value as IDateInput;\n  return typeof obj === 'object' && obj.type === 'Input.Date';\n}\n\nexport type DateInputOptions = Partial<Omit<IDateInput, 'type'>>;\n\n/**\n * An input to allow the user to select a date.\n */\nexport class DateInput implements IDateInput {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Input.Date**.\n   */\n  readonly type = 'Input.Date';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * The label of the input.\n   *\n   * A label should **always** be provided to ensure the best user experience especially for users of assistive technology.\n   */\n  label?: string;\n  /**\n   * Controls whether the input is required. See [Input validation](https://adaptivecards.microsoft.com/?topic=input-validation) for more details.\n   */\n  isRequired?: boolean = false;\n  /**\n   * The error message to display when the input fails validation. See [Input validation](https://adaptivecards.microsoft.com/?topic=input-validation) for more details.\n   */\n  errorMessage?: string;\n  /**\n   * An Action.ResetInputs action that will be executed when the value of the input changes.\n   */\n  valueChangedAction?:\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction;\n  /**\n   * The default value of the input, in the `YYYY-MM-DD` format.\n   */\n  value?: string;\n  /**\n   * The text to display as a placeholder when the user has not selected a date.\n   */\n  placeholder?: string;\n  /**\n   * The minimum date that can be selected.\n   */\n  min?: string;\n  /**\n   * The maximum date that can be selected.\n   */\n  max?: string;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(options: DateInputOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<IDateInput, 'type'>): DateInput {\n    return new DateInput(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withLabel(label: string): this {\n    this.label = label;\n    return this;\n  }\n\n  withIsRequired(isRequired = true): this {\n    this.isRequired = isRequired;\n    return this;\n  }\n\n  withErrorMessage(errorMessage: string): this {\n    this.errorMessage = errorMessage;\n    return this;\n  }\n\n  withValueChangedAction(\n    valueChangedAction:\n      | IOpenUrlDialogAction\n      | IPopoverAction\n      | IResetInputsAction,\n  ): this {\n    this.valueChangedAction = valueChangedAction;\n    return this;\n  }\n\n  withValue(value: string): this {\n    this.value = value;\n    return this;\n  }\n\n  withPlaceholder(placeholder: string): this {\n    this.placeholder = placeholder;\n    return this;\n  }\n\n  withMin(min: string): this {\n    this.min = min;\n    return this;\n  }\n\n  withMax(max: string): this {\n    this.max = max;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * An input to allow the user to select a time.\n */\nexport interface ITimeInput {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Input.Time**.\n   */\n  readonly type: 'Input.Time';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * The label of the input.\n   *\n   * A label should **always** be provided to ensure the best user experience especially for users of assistive technology.\n   */\n  label?: string;\n  /**\n   * Controls whether the input is required. See [Input validation](https://adaptivecards.microsoft.com/?topic=input-validation) for more details.\n   */\n  isRequired?: boolean;\n  /**\n   * The error message to display when the input fails validation. See [Input validation](https://adaptivecards.microsoft.com/?topic=input-validation) for more details.\n   */\n  errorMessage?: string;\n  /**\n   * An Action.ResetInputs action that will be executed when the value of the input changes.\n   */\n  valueChangedAction?:\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction;\n  /**\n   * The default value of the input, in the `HH:MM` format.\n   */\n  value?: string;\n  /**\n   * The text to display as a placeholder when the user hasn't entered a value.\n   */\n  placeholder?: string;\n  /**\n   * The minimum time that can be selected, in the `HH:MM` format.\n   */\n  min?: string;\n  /**\n   * The maximum time that can be selected, in the `HH:MM` format.\n   */\n  max?: string;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type ITimeInput.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of TimeInput, false otherwise.\n */\nexport function isTimeInput(value: unknown): value is ITimeInput {\n  const obj = value as ITimeInput;\n  return typeof obj === 'object' && obj.type === 'Input.Time';\n}\n\nexport type TimeInputOptions = Partial<Omit<ITimeInput, 'type'>>;\n\n/**\n * An input to allow the user to select a time.\n */\nexport class TimeInput implements ITimeInput {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Input.Time**.\n   */\n  readonly type = 'Input.Time';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * The label of the input.\n   *\n   * A label should **always** be provided to ensure the best user experience especially for users of assistive technology.\n   */\n  label?: string;\n  /**\n   * Controls whether the input is required. See [Input validation](https://adaptivecards.microsoft.com/?topic=input-validation) for more details.\n   */\n  isRequired?: boolean = false;\n  /**\n   * The error message to display when the input fails validation. See [Input validation](https://adaptivecards.microsoft.com/?topic=input-validation) for more details.\n   */\n  errorMessage?: string;\n  /**\n   * An Action.ResetInputs action that will be executed when the value of the input changes.\n   */\n  valueChangedAction?:\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction;\n  /**\n   * The default value of the input, in the `HH:MM` format.\n   */\n  value?: string;\n  /**\n   * The text to display as a placeholder when the user hasn't entered a value.\n   */\n  placeholder?: string;\n  /**\n   * The minimum time that can be selected, in the `HH:MM` format.\n   */\n  min?: string;\n  /**\n   * The maximum time that can be selected, in the `HH:MM` format.\n   */\n  max?: string;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(options: TimeInputOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<ITimeInput, 'type'>): TimeInput {\n    return new TimeInput(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withLabel(label: string): this {\n    this.label = label;\n    return this;\n  }\n\n  withIsRequired(isRequired = true): this {\n    this.isRequired = isRequired;\n    return this;\n  }\n\n  withErrorMessage(errorMessage: string): this {\n    this.errorMessage = errorMessage;\n    return this;\n  }\n\n  withValueChangedAction(\n    valueChangedAction:\n      | IOpenUrlDialogAction\n      | IPopoverAction\n      | IResetInputsAction,\n  ): this {\n    this.valueChangedAction = valueChangedAction;\n    return this;\n  }\n\n  withValue(value: string): this {\n    this.value = value;\n    return this;\n  }\n\n  withPlaceholder(placeholder: string): this {\n    this.placeholder = placeholder;\n    return this;\n  }\n\n  withMin(min: string): this {\n    this.min = min;\n    return this;\n  }\n\n  withMax(max: string): this {\n    this.max = max;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * An input to allow the user to enter a number.\n */\nexport interface INumberInput {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Input.Number**.\n   */\n  readonly type: 'Input.Number';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * The label of the input.\n   *\n   * A label should **always** be provided to ensure the best user experience especially for users of assistive technology.\n   */\n  label?: string;\n  /**\n   * Controls whether the input is required. See [Input validation](https://adaptivecards.microsoft.com/?topic=input-validation) for more details.\n   */\n  isRequired?: boolean;\n  /**\n   * The error message to display when the input fails validation. See [Input validation](https://adaptivecards.microsoft.com/?topic=input-validation) for more details.\n   */\n  errorMessage?: string;\n  /**\n   * An Action.ResetInputs action that will be executed when the value of the input changes.\n   */\n  valueChangedAction?:\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction;\n  /**\n   * The default value of the input.\n   */\n  value?: number;\n  /**\n   * The text to display as a placeholder when the user hasn't entered a value.\n   */\n  placeholder?: string;\n  /**\n   * The minimum value that can be entered.\n   */\n  min?: number;\n  /**\n   * The maximum value that can be entered.\n   */\n  max?: number;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type INumberInput.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of NumberInput, false otherwise.\n */\nexport function isNumberInput(value: unknown): value is INumberInput {\n  const obj = value as INumberInput;\n  return typeof obj === 'object' && obj.type === 'Input.Number';\n}\n\nexport type NumberInputOptions = Partial<Omit<INumberInput, 'type'>>;\n\n/**\n * An input to allow the user to enter a number.\n */\nexport class NumberInput implements INumberInput {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Input.Number**.\n   */\n  readonly type = 'Input.Number';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * The label of the input.\n   *\n   * A label should **always** be provided to ensure the best user experience especially for users of assistive technology.\n   */\n  label?: string;\n  /**\n   * Controls whether the input is required. See [Input validation](https://adaptivecards.microsoft.com/?topic=input-validation) for more details.\n   */\n  isRequired?: boolean = false;\n  /**\n   * The error message to display when the input fails validation. See [Input validation](https://adaptivecards.microsoft.com/?topic=input-validation) for more details.\n   */\n  errorMessage?: string;\n  /**\n   * An Action.ResetInputs action that will be executed when the value of the input changes.\n   */\n  valueChangedAction?:\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction;\n  /**\n   * The default value of the input.\n   */\n  value?: number;\n  /**\n   * The text to display as a placeholder when the user hasn't entered a value.\n   */\n  placeholder?: string;\n  /**\n   * The minimum value that can be entered.\n   */\n  min?: number;\n  /**\n   * The maximum value that can be entered.\n   */\n  max?: number;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(options: NumberInputOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<INumberInput, 'type'>): NumberInput {\n    return new NumberInput(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withLabel(label: string): this {\n    this.label = label;\n    return this;\n  }\n\n  withIsRequired(isRequired = true): this {\n    this.isRequired = isRequired;\n    return this;\n  }\n\n  withErrorMessage(errorMessage: string): this {\n    this.errorMessage = errorMessage;\n    return this;\n  }\n\n  withValueChangedAction(\n    valueChangedAction:\n      | IOpenUrlDialogAction\n      | IPopoverAction\n      | IResetInputsAction,\n  ): this {\n    this.valueChangedAction = valueChangedAction;\n    return this;\n  }\n\n  withValue(value: number): this {\n    this.value = value;\n    return this;\n  }\n\n  withPlaceholder(placeholder: string): this {\n    this.placeholder = placeholder;\n    return this;\n  }\n\n  withMin(min: number): this {\n    this.min = min;\n    return this;\n  }\n\n  withMax(max: number): this {\n    this.max = max;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * An input to allow the user to select between on/off states.\n */\nexport interface IToggleInput {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Input.Toggle**.\n   */\n  readonly type: 'Input.Toggle';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * The label of the input.\n   *\n   * A label should **always** be provided to ensure the best user experience especially for users of assistive technology.\n   */\n  label?: string;\n  /**\n   * Controls whether the input is required. See [Input validation](https://adaptivecards.microsoft.com/?topic=input-validation) for more details.\n   */\n  isRequired?: boolean;\n  /**\n   * The error message to display when the input fails validation. See [Input validation](https://adaptivecards.microsoft.com/?topic=input-validation) for more details.\n   */\n  errorMessage?: string;\n  /**\n   * An Action.ResetInputs action that will be executed when the value of the input changes.\n   */\n  valueChangedAction?:\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction;\n  /**\n   * The default value of the input.\n   */\n  value?: string;\n  /**\n   * The title (caption) to display next to the toggle.\n   */\n  title: string;\n  /**\n   * The value to send to the Bot when the toggle is on.\n   */\n  valueOn?: string;\n  /**\n   * The value to send to the Bot when the toggle is off.\n   */\n  valueOff?: string;\n  /**\n   * Controls if the title should wrap.\n   */\n  wrap?: boolean;\n  /**\n   * Controls whether the title is visually displayed. When set to false, the title is hidden from view but remains accessible to screen readers for accessibility purposes.\n   */\n  showTitle?: boolean;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IToggleInput.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of ToggleInput, false otherwise.\n */\nexport function isToggleInput(value: unknown): value is IToggleInput {\n  const obj = value as IToggleInput;\n  return typeof obj === 'object' && obj.type === 'Input.Toggle';\n}\n\nexport type ToggleInputOptions = Partial<Omit<IToggleInput, 'type' | 'title'>>;\n\n/**\n * An input to allow the user to select between on/off states.\n */\nexport class ToggleInput implements IToggleInput {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Input.Toggle**.\n   */\n  readonly type = 'Input.Toggle';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * The label of the input.\n   *\n   * A label should **always** be provided to ensure the best user experience especially for users of assistive technology.\n   */\n  label?: string;\n  /**\n   * Controls whether the input is required. See [Input validation](https://adaptivecards.microsoft.com/?topic=input-validation) for more details.\n   */\n  isRequired?: boolean = false;\n  /**\n   * The error message to display when the input fails validation. See [Input validation](https://adaptivecards.microsoft.com/?topic=input-validation) for more details.\n   */\n  errorMessage?: string;\n  /**\n   * An Action.ResetInputs action that will be executed when the value of the input changes.\n   */\n  valueChangedAction?:\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction;\n  /**\n   * The default value of the input.\n   */\n  value?: string = 'false';\n  /**\n   * The title (caption) to display next to the toggle.\n   */\n  title: string;\n  /**\n   * The value to send to the Bot when the toggle is on.\n   */\n  valueOn?: string = 'true';\n  /**\n   * The value to send to the Bot when the toggle is off.\n   */\n  valueOff?: string = 'false';\n  /**\n   * Controls if the title should wrap.\n   */\n  wrap?: boolean = true;\n  /**\n   * Controls whether the title is visually displayed. When set to false, the title is hidden from view but remains accessible to screen readers for accessibility purposes.\n   */\n  showTitle?: boolean = true;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(title: string, options: ToggleInputOptions = {}) {\n    Object.assign(this, options);\n    this.title = title;\n  }\n\n  static from(options: Omit<IToggleInput, 'type'>): ToggleInput {\n    return new ToggleInput(options.title, options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withLabel(label: string): this {\n    this.label = label;\n    return this;\n  }\n\n  withIsRequired(isRequired = true): this {\n    this.isRequired = isRequired;\n    return this;\n  }\n\n  withErrorMessage(errorMessage: string): this {\n    this.errorMessage = errorMessage;\n    return this;\n  }\n\n  withValueChangedAction(\n    valueChangedAction:\n      | IOpenUrlDialogAction\n      | IPopoverAction\n      | IResetInputsAction,\n  ): this {\n    this.valueChangedAction = valueChangedAction;\n    return this;\n  }\n\n  withValue(value: string): this {\n    this.value = value;\n    return this;\n  }\n\n  withTitle(title: string): this {\n    this.title = title;\n    return this;\n  }\n\n  withValueOn(valueOn: string): this {\n    this.valueOn = valueOn;\n    return this;\n  }\n\n  withValueOff(valueOff: string): this {\n    this.valueOff = valueOff;\n    return this;\n  }\n\n  withWrap(wrap = false): this {\n    this.wrap = wrap;\n    return this;\n  }\n\n  withShowTitle(showTitle = false): this {\n    this.showTitle = showTitle;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * An input to allow the user to select one or more values.\n */\nexport interface IChoiceSetInput {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Input.ChoiceSet**.\n   */\n  readonly type: 'Input.ChoiceSet';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * The label of the input.\n   *\n   * A label should **always** be provided to ensure the best user experience especially for users of assistive technology.\n   */\n  label?: string;\n  /**\n   * Controls whether the input is required. See [Input validation](https://adaptivecards.microsoft.com/?topic=input-validation) for more details.\n   */\n  isRequired?: boolean;\n  /**\n   * The error message to display when the input fails validation. See [Input validation](https://adaptivecards.microsoft.com/?topic=input-validation) for more details.\n   */\n  errorMessage?: string;\n  /**\n   * An Action.ResetInputs action that will be executed when the value of the input changes.\n   */\n  valueChangedAction?:\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction;\n  /**\n   * The default value of the input.\n   */\n  value?: string;\n  /**\n   * The choices associated with the input.\n   */\n  choices: IChoice[];\n  /**\n   * A Data.Query object that defines the dataset from which to dynamically fetch the choices for the input.\n   */\n  'choices.data'?: IQueryData;\n  /**\n   * Controls whether the input should be displayed as a dropdown (compact) or a list of radio buttons or checkboxes (expanded).\n   */\n  style?: ChoiceSetInputStyle;\n  /**\n   * Controls whether multiple choices can be selected.\n   */\n  isMultiSelect?: boolean;\n  /**\n   * The text to display as a placeholder when the user has not entered any value.\n   */\n  placeholder?: string;\n  /**\n   * Controls if choice titles should wrap.\n   */\n  wrap?: boolean;\n  /**\n   * Controls whether choice items are arranged in multiple columns in expanded mode, or in a single column. Default is false.\n   */\n  useMultipleColumns?: boolean;\n  /**\n   * The minimum width, in pixels, for each column when using a multi-column layout. This ensures that choice items remain readable even when horizontal space is limited. Default is 100 pixels.\n   */\n  minColumnWidth?: string;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IChoiceSetInput.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of ChoiceSetInput, false otherwise.\n */\nexport function isChoiceSetInput(value: unknown): value is IChoiceSetInput {\n  const obj = value as IChoiceSetInput;\n  return typeof obj === 'object' && obj.type === 'Input.ChoiceSet';\n}\n\nexport type ChoiceSetInputOptions = Partial<\n  Omit<IChoiceSetInput, 'type' | 'choices'>\n>;\n\n/**\n * An input to allow the user to select one or more values.\n */\nexport class ChoiceSetInput implements IChoiceSetInput {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Input.ChoiceSet**.\n   */\n  readonly type = 'Input.ChoiceSet';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * The label of the input.\n   *\n   * A label should **always** be provided to ensure the best user experience especially for users of assistive technology.\n   */\n  label?: string;\n  /**\n   * Controls whether the input is required. See [Input validation](https://adaptivecards.microsoft.com/?topic=input-validation) for more details.\n   */\n  isRequired?: boolean = false;\n  /**\n   * The error message to display when the input fails validation. See [Input validation](https://adaptivecards.microsoft.com/?topic=input-validation) for more details.\n   */\n  errorMessage?: string;\n  /**\n   * An Action.ResetInputs action that will be executed when the value of the input changes.\n   */\n  valueChangedAction?:\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction;\n  /**\n   * The default value of the input.\n   */\n  value?: string;\n  /**\n   * The choices associated with the input.\n   */\n  choices: IChoice[];\n  /**\n   * A Data.Query object that defines the dataset from which to dynamically fetch the choices for the input.\n   */\n  'choices.data'?: IQueryData;\n  /**\n   * Controls whether the input should be displayed as a dropdown (compact) or a list of radio buttons or checkboxes (expanded).\n   */\n  style?: ChoiceSetInputStyle = 'compact';\n  /**\n   * Controls whether multiple choices can be selected.\n   */\n  isMultiSelect?: boolean = false;\n  /**\n   * The text to display as a placeholder when the user has not entered any value.\n   */\n  placeholder?: string;\n  /**\n   * Controls if choice titles should wrap.\n   */\n  wrap?: boolean = true;\n  /**\n   * Controls whether choice items are arranged in multiple columns in expanded mode, or in a single column. Default is false.\n   */\n  useMultipleColumns?: boolean = false;\n  /**\n   * The minimum width, in pixels, for each column when using a multi-column layout. This ensures that choice items remain readable even when horizontal space is limited. Default is 100 pixels.\n   */\n  minColumnWidth?: string;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(...choices: IChoice[]) {\n    this.choices = choices;\n  }\n\n  withOptions(value: ChoiceSetInputOptions): this {\n    Object.assign(this, value);\n    return this;\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withLabel(label: string): this {\n    this.label = label;\n    return this;\n  }\n\n  withIsRequired(isRequired = true): this {\n    this.isRequired = isRequired;\n    return this;\n  }\n\n  withErrorMessage(errorMessage: string): this {\n    this.errorMessage = errorMessage;\n    return this;\n  }\n\n  withValueChangedAction(\n    valueChangedAction:\n      | IOpenUrlDialogAction\n      | IPopoverAction\n      | IResetInputsAction,\n  ): this {\n    this.valueChangedAction = valueChangedAction;\n    return this;\n  }\n\n  withValue(value: string): this {\n    this.value = value;\n    return this;\n  }\n\n  withChoices(...choices: IChoice[]): this {\n    this.choices = choices;\n    return this;\n  }\n\n  withStyle(style: ChoiceSetInputStyle): this {\n    this.style = style;\n    return this;\n  }\n\n  withIsMultiSelect(isMultiSelect = true): this {\n    this.isMultiSelect = isMultiSelect;\n    return this;\n  }\n\n  withPlaceholder(placeholder: string): this {\n    this.placeholder = placeholder;\n    return this;\n  }\n\n  withWrap(wrap = false): this {\n    this.wrap = wrap;\n    return this;\n  }\n\n  withUseMultipleColumns(useMultipleColumns = true): this {\n    this.useMultipleColumns = useMultipleColumns;\n    return this;\n  }\n\n  withMinColumnWidth(minColumnWidth: string): this {\n    this.minColumnWidth = minColumnWidth;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * A choice as used by the Input.ChoiceSet input.\n */\nexport interface IChoice {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The text to display for the choice.\n   */\n  title?: string;\n  /**\n   * The value associated with the choice, as sent to the Bot when an Action.Submit or Action.Execute is invoked\n   */\n  value?: string;\n}\n\nexport type ChoiceOptions = Partial<IChoice>;\n\n/**\n * A choice as used by the Input.ChoiceSet input.\n */\nexport class Choice implements IChoice {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The text to display for the choice.\n   */\n  title?: string;\n  /**\n   * The value associated with the choice, as sent to the Bot when an Action.Submit or Action.Execute is invoked\n   */\n  value?: string;\n\n  constructor(options: ChoiceOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: IChoice): Choice {\n    return new Choice(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withTitle(title: string): this {\n    this.title = title;\n    return this;\n  }\n\n  withValue(value: string): this {\n    this.value = value;\n    return this;\n  }\n}\n\n/**\n * Defines a query to dynamically fetch data from a Bot.\n */\nexport interface IQueryData {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Data.Query**.\n   */\n  readonly type: 'Data.Query';\n  /**\n   * The dataset from which to fetch the data.\n   */\n  dataset?: string;\n  /**\n   * Controls which inputs are associated with the Data.Query. When a Data.Query is executed, the values of the associated inputs are sent to the Bot, allowing it to perform filtering operations based on the user's input.\n   */\n  associatedInputs?: AssociatedInputs;\n  /**\n   * The maximum number of data items that should be returned by the query. Card authors should not specify this property in their card payload. It is determined by the client and sent to the Bot to enable pagination.\n   */\n  count?: number;\n  /**\n   * The number of data items to be skipped by the query. Card authors should not specify this property in their card payload. It is determined by the client and sent to the Bot to enable pagination.\n   */\n  skip?: number;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IQueryData.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of QueryData, false otherwise.\n */\nexport function isQueryData(value: unknown): value is IQueryData {\n  const obj = value as IQueryData;\n  return typeof obj === 'object' && obj.type === 'Data.Query';\n}\n\nexport type QueryDataOptions = Partial<Omit<IQueryData, 'type'>>;\n\n/**\n * Defines a query to dynamically fetch data from a Bot.\n */\nexport class QueryData implements IQueryData {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Data.Query**.\n   */\n  readonly type = 'Data.Query';\n  /**\n   * The dataset from which to fetch the data.\n   */\n  dataset?: string;\n  /**\n   * Controls which inputs are associated with the Data.Query. When a Data.Query is executed, the values of the associated inputs are sent to the Bot, allowing it to perform filtering operations based on the user's input.\n   */\n  associatedInputs?: AssociatedInputs;\n  /**\n   * The maximum number of data items that should be returned by the query. Card authors should not specify this property in their card payload. It is determined by the client and sent to the Bot to enable pagination.\n   */\n  count?: number;\n  /**\n   * The number of data items to be skipped by the query. Card authors should not specify this property in their card payload. It is determined by the client and sent to the Bot to enable pagination.\n   */\n  skip?: number;\n\n  constructor(options: QueryDataOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<IQueryData, 'type'>): QueryData {\n    return new QueryData(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withDataset(dataset: string): this {\n    this.dataset = dataset;\n    return this;\n  }\n\n  withAssociatedInputs(associatedInputs: AssociatedInputs): this {\n    this.associatedInputs = associatedInputs;\n    return this;\n  }\n\n  withCount(count: number): this {\n    this.count = count;\n    return this;\n  }\n\n  withSkip(skip: number): this {\n    this.skip = skip;\n    return this;\n  }\n}\n\n/**\n * An input to allow the user to rate something using stars.\n */\nexport interface IRatingInput {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Input.Rating**.\n   */\n  readonly type: 'Input.Rating';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * The label of the input.\n   *\n   * A label should **always** be provided to ensure the best user experience especially for users of assistive technology.\n   */\n  label?: string;\n  /**\n   * Controls whether the input is required. See [Input validation](https://adaptivecards.microsoft.com/?topic=input-validation) for more details.\n   */\n  isRequired?: boolean;\n  /**\n   * The error message to display when the input fails validation. See [Input validation](https://adaptivecards.microsoft.com/?topic=input-validation) for more details.\n   */\n  errorMessage?: string;\n  /**\n   * An Action.ResetInputs action that will be executed when the value of the input changes.\n   */\n  valueChangedAction?:\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction;\n  /**\n   * The default value of the input.\n   */\n  value?: number;\n  /**\n   * The number of stars to display.\n   */\n  max?: number;\n  /**\n   * Controls if the user can select half stars.\n   */\n  allowHalfSteps?: boolean;\n  /**\n   * The size of the stars.\n   */\n  size?: RatingSize;\n  /**\n   * The color of the stars.\n   */\n  color?: RatingColor;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IRatingInput.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of RatingInput, false otherwise.\n */\nexport function isRatingInput(value: unknown): value is IRatingInput {\n  const obj = value as IRatingInput;\n  return typeof obj === 'object' && obj.type === 'Input.Rating';\n}\n\nexport type RatingInputOptions = Partial<Omit<IRatingInput, 'type'>>;\n\n/**\n * An input to allow the user to rate something using stars.\n */\nexport class RatingInput implements IRatingInput {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Input.Rating**.\n   */\n  readonly type = 'Input.Rating';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * The label of the input.\n   *\n   * A label should **always** be provided to ensure the best user experience especially for users of assistive technology.\n   */\n  label?: string;\n  /**\n   * Controls whether the input is required. See [Input validation](https://adaptivecards.microsoft.com/?topic=input-validation) for more details.\n   */\n  isRequired?: boolean = false;\n  /**\n   * The error message to display when the input fails validation. See [Input validation](https://adaptivecards.microsoft.com/?topic=input-validation) for more details.\n   */\n  errorMessage?: string;\n  /**\n   * An Action.ResetInputs action that will be executed when the value of the input changes.\n   */\n  valueChangedAction?:\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction;\n  /**\n   * The default value of the input.\n   */\n  value?: number;\n  /**\n   * The number of stars to display.\n   */\n  max?: number = 5;\n  /**\n   * Controls if the user can select half stars.\n   */\n  allowHalfSteps?: boolean = false;\n  /**\n   * The size of the stars.\n   */\n  size?: RatingSize = 'Large';\n  /**\n   * The color of the stars.\n   */\n  color?: RatingColor = 'Neutral';\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(options: RatingInputOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<IRatingInput, 'type'>): RatingInput {\n    return new RatingInput(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withLabel(label: string): this {\n    this.label = label;\n    return this;\n  }\n\n  withIsRequired(isRequired = true): this {\n    this.isRequired = isRequired;\n    return this;\n  }\n\n  withErrorMessage(errorMessage: string): this {\n    this.errorMessage = errorMessage;\n    return this;\n  }\n\n  withValueChangedAction(\n    valueChangedAction:\n      | IOpenUrlDialogAction\n      | IPopoverAction\n      | IResetInputsAction,\n  ): this {\n    this.valueChangedAction = valueChangedAction;\n    return this;\n  }\n\n  withValue(value: number): this {\n    this.value = value;\n    return this;\n  }\n\n  withMax(max: number): this {\n    this.max = max;\n    return this;\n  }\n\n  withAllowHalfSteps(allowHalfSteps = true): this {\n    this.allowHalfSteps = allowHalfSteps;\n    return this;\n  }\n\n  withSize(size: RatingSize): this {\n    this.size = size;\n    return this;\n  }\n\n  withColor(color: RatingColor): this {\n    this.color = color;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * A read-only star rating element, to display the rating of something.\n */\nexport interface IRating {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Rating**.\n   */\n  readonly type: 'Rating';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * The value of the rating. Must be between 0 and max.\n   */\n  value?: number;\n  /**\n   * The number of \"votes\" associated with the rating.\n   */\n  count?: number;\n  /**\n   * The number of stars to display.\n   */\n  max?: number;\n  /**\n   * The size of the stars.\n   */\n  size?: RatingSize;\n  /**\n   * The color of the stars.\n   */\n  color?: RatingColor;\n  /**\n   * The style of the stars.\n   */\n  style?: RatingStyle;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IRating.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of Rating, false otherwise.\n */\nexport function isRating(value: unknown): value is IRating {\n  const obj = value as IRating;\n  return typeof obj === 'object' && obj.type === 'Rating';\n}\n\nexport type RatingOptions = Partial<Omit<IRating, 'type'>>;\n\n/**\n * A read-only star rating element, to display the rating of something.\n */\nexport class Rating implements IRating {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Rating**.\n   */\n  readonly type = 'Rating';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * The value of the rating. Must be between 0 and max.\n   */\n  value?: number;\n  /**\n   * The number of \"votes\" associated with the rating.\n   */\n  count?: number;\n  /**\n   * The number of stars to display.\n   */\n  max?: number = 5;\n  /**\n   * The size of the stars.\n   */\n  size?: RatingSize = 'Large';\n  /**\n   * The color of the stars.\n   */\n  color?: RatingColor = 'Neutral';\n  /**\n   * The style of the stars.\n   */\n  style?: RatingStyle = 'Default';\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(options: RatingOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<IRating, 'type'>): Rating {\n    return new Rating(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withHorizontalAlignment(horizontalAlignment: HorizontalAlignment): this {\n    this.horizontalAlignment = horizontalAlignment;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withValue(value: number): this {\n    this.value = value;\n    return this;\n  }\n\n  withCount(count: number): this {\n    this.count = count;\n    return this;\n  }\n\n  withMax(max: number): this {\n    this.max = max;\n    return this;\n  }\n\n  withSize(size: RatingSize): this {\n    this.size = size;\n    return this;\n  }\n\n  withColor(color: RatingColor): this {\n    this.color = color;\n    return this;\n  }\n\n  withStyle(style: RatingStyle): this {\n    this.style = style;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * A special type of button with an icon, title and description.\n */\nexport interface ICompoundButton {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **CompoundButton**.\n   */\n  readonly type: 'CompoundButton';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * The icon to show on the button.\n   */\n  icon?: IIconInfo;\n  /**\n   * The badge to show on the button.\n   */\n  badge?: string;\n  /**\n   * The title of the button.\n   */\n  title?: string;\n  /**\n   * The description text of the button.\n   */\n  description?: string;\n  /**\n   * An Action that will be invoked when the button is tapped or clicked. Action.ShowCard is not supported.\n   */\n  selectAction?:\n    | IExecuteAction\n    | IInsertImageAction\n    | IOpenUrlAction\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction\n    | ISubmitAction\n    | IToggleVisibilityAction;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type ICompoundButton.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of CompoundButton, false otherwise.\n */\nexport function isCompoundButton(value: unknown): value is ICompoundButton {\n  const obj = value as ICompoundButton;\n  return typeof obj === 'object' && obj.type === 'CompoundButton';\n}\n\nexport type CompoundButtonOptions = Partial<Omit<ICompoundButton, 'type'>>;\n\n/**\n * A special type of button with an icon, title and description.\n */\nexport class CompoundButton implements ICompoundButton {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **CompoundButton**.\n   */\n  readonly type = 'CompoundButton';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * The icon to show on the button.\n   */\n  icon?: IIconInfo;\n  /**\n   * The badge to show on the button.\n   */\n  badge?: string;\n  /**\n   * The title of the button.\n   */\n  title?: string;\n  /**\n   * The description text of the button.\n   */\n  description?: string;\n  /**\n   * An Action that will be invoked when the button is tapped or clicked. Action.ShowCard is not supported.\n   */\n  selectAction?:\n    | IExecuteAction\n    | IInsertImageAction\n    | IOpenUrlAction\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction\n    | ISubmitAction\n    | IToggleVisibilityAction;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(options: CompoundButtonOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<ICompoundButton, 'type'>): CompoundButton {\n    return new CompoundButton(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withHorizontalAlignment(horizontalAlignment: HorizontalAlignment): this {\n    this.horizontalAlignment = horizontalAlignment;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withIcon(icon: IIconInfo): this {\n    this.icon = icon;\n    return this;\n  }\n\n  withBadge(badge: string): this {\n    this.badge = badge;\n    return this;\n  }\n\n  withTitle(title: string): this {\n    this.title = title;\n    return this;\n  }\n\n  withDescription(description: string): this {\n    this.description = description;\n    return this;\n  }\n\n  withSelectAction(\n    selectAction:\n      | IExecuteAction\n      | IInsertImageAction\n      | IOpenUrlAction\n      | IOpenUrlDialogAction\n      | IPopoverAction\n      | IResetInputsAction\n      | ISubmitAction\n      | IToggleVisibilityAction,\n  ): this {\n    this.selectAction = selectAction;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * Defines information about a Fluent icon and how it should be rendered.\n */\nexport interface IIconInfo {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The name of the icon to display.\n   */\n  name?: string;\n  /**\n   * The size of the icon.\n   */\n  size?: IconSize;\n  /**\n   * The style of the icon.\n   */\n  style?: IconStyle;\n  /**\n   * The color of the icon.\n   */\n  color?: TextColor;\n}\n\nexport type IconInfoOptions = Partial<IIconInfo>;\n\n/**\n * Defines information about a Fluent icon and how it should be rendered.\n */\nexport class IconInfo implements IIconInfo {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The name of the icon to display.\n   */\n  name?: string;\n  /**\n   * The size of the icon.\n   */\n  size?: IconSize = 'xSmall';\n  /**\n   * The style of the icon.\n   */\n  style?: IconStyle = 'Regular';\n  /**\n   * The color of the icon.\n   */\n  color?: TextColor = 'Default';\n\n  constructor(options: IconInfoOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: IIconInfo): IconInfo {\n    return new IconInfo(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withName(name: string): this {\n    this.name = name;\n    return this;\n  }\n\n  withSize(size: IconSize): this {\n    this.size = size;\n    return this;\n  }\n\n  withStyle(style: IconStyle): this {\n    this.style = style;\n    return this;\n  }\n\n  withColor(color: TextColor): this {\n    this.color = color;\n    return this;\n  }\n}\n\n/**\n * A standalone icon element. Icons can be picked from the vast [Adaptive Card icon catalog](https://adaptivecards.microsoft.com/?topic=icon-catalog).\n */\nexport interface IIcon {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Icon**.\n   */\n  readonly type: 'Icon';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * The name of the icon to display.\n   */\n  name: string;\n  /**\n   * The size of the icon.\n   */\n  size?: IconSize;\n  /**\n   * The style of the icon.\n   */\n  style?: IconStyle;\n  /**\n   * The color of the icon.\n   */\n  color?: TextColor;\n  /**\n   * An Action that will be invoked when the icon is tapped or clicked. Action.ShowCard is not supported.\n   */\n  selectAction?:\n    | IExecuteAction\n    | IInsertImageAction\n    | IOpenUrlAction\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction\n    | ISubmitAction\n    | IToggleVisibilityAction;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IIcon.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of Icon, false otherwise.\n */\nexport function isIcon(value: unknown): value is IIcon {\n  const obj = value as IIcon;\n  return typeof obj === 'object' && obj.type === 'Icon';\n}\n\nexport type IconOptions = Partial<Omit<IIcon, 'type' | 'name'>>;\n\n/**\n * A standalone icon element. Icons can be picked from the vast [Adaptive Card icon catalog](https://adaptivecards.microsoft.com/?topic=icon-catalog).\n */\nexport class Icon implements IIcon {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Icon**.\n   */\n  readonly type = 'Icon';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * The name of the icon to display.\n   */\n  name: string;\n  /**\n   * The size of the icon.\n   */\n  size?: IconSize = 'Standard';\n  /**\n   * The style of the icon.\n   */\n  style?: IconStyle = 'Regular';\n  /**\n   * The color of the icon.\n   */\n  color?: TextColor = 'Default';\n  /**\n   * An Action that will be invoked when the icon is tapped or clicked. Action.ShowCard is not supported.\n   */\n  selectAction?:\n    | IExecuteAction\n    | IInsertImageAction\n    | IOpenUrlAction\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction\n    | ISubmitAction\n    | IToggleVisibilityAction;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(name: string, options: IconOptions = {}) {\n    Object.assign(this, options);\n    this.name = name;\n  }\n\n  static from(options: Omit<IIcon, 'type'>): Icon {\n    return new Icon(options.name, options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHorizontalAlignment(horizontalAlignment: HorizontalAlignment): this {\n    this.horizontalAlignment = horizontalAlignment;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withName(name: string): this {\n    this.name = name;\n    return this;\n  }\n\n  withSize(size: IconSize): this {\n    this.size = size;\n    return this;\n  }\n\n  withStyle(style: IconStyle): this {\n    this.style = style;\n    return this;\n  }\n\n  withColor(color: TextColor): this {\n    this.color = color;\n    return this;\n  }\n\n  withSelectAction(\n    selectAction:\n      | IExecuteAction\n      | IInsertImageAction\n      | IOpenUrlAction\n      | IOpenUrlDialogAction\n      | IPopoverAction\n      | IResetInputsAction\n      | ISubmitAction\n      | IToggleVisibilityAction,\n  ): this {\n    this.selectAction = selectAction;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * A carousel with sliding pages.\n */\nexport interface ICarousel {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Carousel**.\n   */\n  readonly type: 'Carousel';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * Controls if the container should bleed into its parent. A bleeding container extends into its parent's padding.\n   */\n  bleed?: boolean;\n  /**\n   * The minimum height, in pixels, of the container, in the `<number>px` format.\n   */\n  minHeight?: string;\n  /**\n   * Controls the type of animation to use to navigate between pages.\n   */\n  pageAnimation?: CarouselPageAnimation;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n  /**\n   * The pages in the carousel.\n   */\n  pages?: ICarouselPage[];\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type ICarousel.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of Carousel, false otherwise.\n */\nexport function isCarousel(value: unknown): value is ICarousel {\n  const obj = value as ICarousel;\n  return typeof obj === 'object' && obj.type === 'Carousel';\n}\n\nexport type CarouselOptions = Partial<Omit<ICarousel, 'type'>>;\n\n/**\n * A carousel with sliding pages.\n */\nexport class Carousel implements ICarousel {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Carousel**.\n   */\n  readonly type = 'Carousel';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * Controls if the container should bleed into its parent. A bleeding container extends into its parent's padding.\n   */\n  bleed?: boolean = false;\n  /**\n   * The minimum height, in pixels, of the container, in the `<number>px` format.\n   */\n  minHeight?: string;\n  /**\n   * Controls the type of animation to use to navigate between pages.\n   */\n  pageAnimation?: CarouselPageAnimation = 'Slide';\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n  /**\n   * The pages in the carousel.\n   */\n  pages?: ICarouselPage[];\n\n  constructor(options: CarouselOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<ICarousel, 'type'>): Carousel {\n    return new Carousel(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withBleed(bleed = true): this {\n    this.bleed = bleed;\n    return this;\n  }\n\n  withMinHeight(minHeight: string): this {\n    this.minHeight = minHeight;\n    return this;\n  }\n\n  withPageAnimation(pageAnimation: CarouselPageAnimation): this {\n    this.pageAnimation = pageAnimation;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n\n  withPages(...pages: ICarouselPage[]): this {\n    this.pages = pages;\n    return this;\n  }\n}\n\n/**\n * A badge element to show an icon and/or text in a compact form over a colored background.\n */\nexport interface IBadge {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Badge**.\n   */\n  readonly type: 'Badge';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * The text to display.\n   */\n  text?: string;\n  /**\n   * The name of an icon from the [Adaptive Card icon catalog](https://adaptivecards.microsoft.com/?topic=icon-catalog) to display, in the `<icon-name>[,regular|filled]` format. If the style is not specified, the regular style is used.\n   */\n  icon?: string;\n  /**\n   * Controls the position of the icon.\n   */\n  iconPosition?: BadgeIconPosition;\n  /**\n   * Controls the strength of the background color.\n   */\n  appearance?: BadgeAppearance;\n  /**\n   * The size of the badge.\n   */\n  size?: BadgeSize;\n  /**\n   * Controls the shape of the badge.\n   */\n  shape?: BadgeShape;\n  /**\n   * The style of the badge.\n   */\n  style?: BadgeStyle;\n  /**\n   * Controls the tooltip text to display when the badge is hovered over.\n   */\n  tooltip?: string;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IBadge.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of Badge, false otherwise.\n */\nexport function isBadge(value: unknown): value is IBadge {\n  const obj = value as IBadge;\n  return typeof obj === 'object' && obj.type === 'Badge';\n}\n\nexport type BadgeOptions = Partial<Omit<IBadge, 'type'>>;\n\n/**\n * A badge element to show an icon and/or text in a compact form over a colored background.\n */\nexport class Badge implements IBadge {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Badge**.\n   */\n  readonly type = 'Badge';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * The text to display.\n   */\n  text?: string;\n  /**\n   * The name of an icon from the [Adaptive Card icon catalog](https://adaptivecards.microsoft.com/?topic=icon-catalog) to display, in the `<icon-name>[,regular|filled]` format. If the style is not specified, the regular style is used.\n   */\n  icon?: string;\n  /**\n   * Controls the position of the icon.\n   */\n  iconPosition?: BadgeIconPosition = 'Before';\n  /**\n   * Controls the strength of the background color.\n   */\n  appearance?: BadgeAppearance = 'Filled';\n  /**\n   * The size of the badge.\n   */\n  size?: BadgeSize = 'Medium';\n  /**\n   * Controls the shape of the badge.\n   */\n  shape?: BadgeShape = 'Circular';\n  /**\n   * The style of the badge.\n   */\n  style?: BadgeStyle = 'Default';\n  /**\n   * Controls the tooltip text to display when the badge is hovered over.\n   */\n  tooltip?: string;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(options: BadgeOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<IBadge, 'type'>): Badge {\n    return new Badge(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withHorizontalAlignment(horizontalAlignment: HorizontalAlignment): this {\n    this.horizontalAlignment = horizontalAlignment;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withText(text: string): this {\n    this.text = text;\n    return this;\n  }\n\n  withIcon(icon: string): this {\n    this.icon = icon;\n    return this;\n  }\n\n  withIconPosition(iconPosition: BadgeIconPosition): this {\n    this.iconPosition = iconPosition;\n    return this;\n  }\n\n  withAppearance(appearance: BadgeAppearance): this {\n    this.appearance = appearance;\n    return this;\n  }\n\n  withSize(size: BadgeSize): this {\n    this.size = size;\n    return this;\n  }\n\n  withShape(shape: BadgeShape): this {\n    this.shape = shape;\n    return this;\n  }\n\n  withStyle(style: BadgeStyle): this {\n    this.style = style;\n    return this;\n  }\n\n  withTooltip(tooltip: string): this {\n    this.tooltip = tooltip;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * A spinning ring element, to indicate progress.\n */\nexport interface IProgressRing {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **ProgressRing**.\n   */\n  readonly type: 'ProgressRing';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * The label of the progress ring.\n   */\n  label?: string;\n  /**\n   * Controls the relative position of the label to the progress ring.\n   */\n  labelPosition?: ProgressRingLabelPosition;\n  /**\n   * The size of the progress ring.\n   */\n  size?: ProgressRingSize;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IProgressRing.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of ProgressRing, false otherwise.\n */\nexport function isProgressRing(value: unknown): value is IProgressRing {\n  const obj = value as IProgressRing;\n  return typeof obj === 'object' && obj.type === 'ProgressRing';\n}\n\nexport type ProgressRingOptions = Partial<Omit<IProgressRing, 'type'>>;\n\n/**\n * A spinning ring element, to indicate progress.\n */\nexport class ProgressRing implements IProgressRing {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **ProgressRing**.\n   */\n  readonly type = 'ProgressRing';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * The label of the progress ring.\n   */\n  label?: string;\n  /**\n   * Controls the relative position of the label to the progress ring.\n   */\n  labelPosition?: ProgressRingLabelPosition = 'Below';\n  /**\n   * The size of the progress ring.\n   */\n  size?: ProgressRingSize = 'Medium';\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(options: ProgressRingOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<IProgressRing, 'type'>): ProgressRing {\n    return new ProgressRing(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withHorizontalAlignment(horizontalAlignment: HorizontalAlignment): this {\n    this.horizontalAlignment = horizontalAlignment;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withLabel(label: string): this {\n    this.label = label;\n    return this;\n  }\n\n  withLabelPosition(labelPosition: ProgressRingLabelPosition): this {\n    this.labelPosition = labelPosition;\n    return this;\n  }\n\n  withSize(size: ProgressRingSize): this {\n    this.size = size;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * A progress bar element, to represent a value within a range.\n */\nexport interface IProgressBar {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **ProgressBar**.\n   */\n  readonly type: 'ProgressBar';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * The value of the progress bar. Must be between 0 and max.\n   */\n  value?: number;\n  /**\n   * The maximum value of the progress bar.\n   */\n  max?: number;\n  /**\n   * The color of the progress bar. `color` has no effect when the `ProgressBar` is in indeterminate mode, in which case the \"accent\" color is always used.\n   */\n  color?: ProgressBarColor;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IProgressBar.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of ProgressBar, false otherwise.\n */\nexport function isProgressBar(value: unknown): value is IProgressBar {\n  const obj = value as IProgressBar;\n  return typeof obj === 'object' && obj.type === 'ProgressBar';\n}\n\nexport type ProgressBarOptions = Partial<Omit<IProgressBar, 'type'>>;\n\n/**\n * A progress bar element, to represent a value within a range.\n */\nexport class ProgressBar implements IProgressBar {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **ProgressBar**.\n   */\n  readonly type = 'ProgressBar';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * The value of the progress bar. Must be between 0 and max.\n   */\n  value?: number;\n  /**\n   * The maximum value of the progress bar.\n   */\n  max?: number = 100;\n  /**\n   * The color of the progress bar. `color` has no effect when the `ProgressBar` is in indeterminate mode, in which case the \"accent\" color is always used.\n   */\n  color?: ProgressBarColor = 'Accent';\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(options: ProgressBarOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<IProgressBar, 'type'>): ProgressBar {\n    return new ProgressBar(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withHorizontalAlignment(horizontalAlignment: HorizontalAlignment): this {\n    this.horizontalAlignment = horizontalAlignment;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withValue(value: number): this {\n    this.value = value;\n    return this;\n  }\n\n  withMax(max: number): this {\n    this.max = max;\n    return this;\n  }\n\n  withColor(color: ProgressBarColor): this {\n    this.color = color;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * A donut chart.\n */\nexport interface IDonutChart {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Chart.Donut**.\n   */\n  readonly type: 'Chart.Donut';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * The title of the chart.\n   */\n  title?: string;\n  /**\n   * Controls whether the chart's title should be displayed. Defaults to `false`.\n   */\n  showTitle?: boolean;\n  /**\n   * The name of the set of colors to use to render the chart. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  colorSet?: ChartColorSet;\n  /**\n   * The maximum width, in pixels, of the chart, in the `<number>px` format.\n   */\n  maxWidth?: string;\n  /**\n   * Controls whether the chart's legend should be displayed.\n   */\n  showLegend?: boolean;\n  /**\n   * The data to display in the chart.\n   */\n  data?: IDonutChartData[];\n  /**\n   * The value that should be displayed in the center of a Donut chart. `value` is ignored for Pie charts.\n   */\n  value?: string;\n  /**\n   * Controls the color of the value displayed in the center of a Donut chart.\n   */\n  valueColor?: ChartColor;\n  /**\n   * Controls the thickness of the donut segments. Default is **Thick**.\n   */\n  thickness?: DonutThickness;\n  /**\n   * Controls whether the outlines of the donut segments are displayed.\n   */\n  showOutlines?: boolean;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IDonutChart.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of DonutChart, false otherwise.\n */\nexport function isDonutChart(value: unknown): value is IDonutChart {\n  const obj = value as IDonutChart;\n  return typeof obj === 'object' && obj.type === 'Chart.Donut';\n}\n\nexport type DonutChartOptions = Partial<Omit<IDonutChart, 'type'>>;\n\n/**\n * A donut chart.\n */\nexport class DonutChart implements IDonutChart {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Chart.Donut**.\n   */\n  readonly type = 'Chart.Donut';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * The title of the chart.\n   */\n  title?: string;\n  /**\n   * Controls whether the chart's title should be displayed. Defaults to `false`.\n   */\n  showTitle?: boolean = false;\n  /**\n   * The name of the set of colors to use to render the chart. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  colorSet?: ChartColorSet;\n  /**\n   * The maximum width, in pixels, of the chart, in the `<number>px` format.\n   */\n  maxWidth?: string;\n  /**\n   * Controls whether the chart's legend should be displayed.\n   */\n  showLegend?: boolean = true;\n  /**\n   * The data to display in the chart.\n   */\n  data?: IDonutChartData[];\n  /**\n   * The value that should be displayed in the center of a Donut chart. `value` is ignored for Pie charts.\n   */\n  value?: string;\n  /**\n   * Controls the color of the value displayed in the center of a Donut chart.\n   */\n  valueColor?: ChartColor;\n  /**\n   * Controls the thickness of the donut segments. Default is **Thick**.\n   */\n  thickness?: DonutThickness;\n  /**\n   * Controls whether the outlines of the donut segments are displayed.\n   */\n  showOutlines?: boolean = true;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(options: DonutChartOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<IDonutChart, 'type'>): DonutChart {\n    return new DonutChart(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withHorizontalAlignment(horizontalAlignment: HorizontalAlignment): this {\n    this.horizontalAlignment = horizontalAlignment;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withTitle(title: string): this {\n    this.title = title;\n    return this;\n  }\n\n  withShowTitle(showTitle = true): this {\n    this.showTitle = showTitle;\n    return this;\n  }\n\n  withColorSet(colorSet: ChartColorSet): this {\n    this.colorSet = colorSet;\n    return this;\n  }\n\n  withMaxWidth(maxWidth: string): this {\n    this.maxWidth = maxWidth;\n    return this;\n  }\n\n  withShowLegend(showLegend = false): this {\n    this.showLegend = showLegend;\n    return this;\n  }\n\n  withData(...data: IDonutChartData[]): this {\n    this.data = data;\n    return this;\n  }\n\n  withValue(value: string): this {\n    this.value = value;\n    return this;\n  }\n\n  withValueColor(valueColor: ChartColor): this {\n    this.valueColor = valueColor;\n    return this;\n  }\n\n  withThickness(thickness: DonutThickness): this {\n    this.thickness = thickness;\n    return this;\n  }\n\n  withShowOutlines(showOutlines = false): this {\n    this.showOutlines = showOutlines;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * A data point in a Donut chart.\n */\nexport interface IDonutChartData {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The legend of the chart.\n   */\n  legend?: string;\n  /**\n   * The value associated with the data point.\n   */\n  value?: number;\n  /**\n   * The color to use for the data point. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  color?: ChartColor;\n}\n\nexport type DonutChartDataOptions = Partial<IDonutChartData>;\n\n/**\n * A data point in a Donut chart.\n */\nexport class DonutChartData implements IDonutChartData {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The legend of the chart.\n   */\n  legend?: string;\n  /**\n   * The value associated with the data point.\n   */\n  value?: number = 0;\n  /**\n   * The color to use for the data point. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  color?: ChartColor;\n\n  constructor(options: DonutChartDataOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: IDonutChartData): DonutChartData {\n    return new DonutChartData(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withLegend(legend: string): this {\n    this.legend = legend;\n    return this;\n  }\n\n  withValue(value: number): this {\n    this.value = value;\n    return this;\n  }\n\n  withColor(color: ChartColor): this {\n    this.color = color;\n    return this;\n  }\n}\n\n/**\n * A pie chart.\n */\nexport interface IPieChart {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Chart.Pie**.\n   */\n  readonly type: 'Chart.Pie';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * The title of the chart.\n   */\n  title?: string;\n  /**\n   * Controls whether the chart's title should be displayed. Defaults to `false`.\n   */\n  showTitle?: boolean;\n  /**\n   * The name of the set of colors to use to render the chart. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  colorSet?: ChartColorSet;\n  /**\n   * The maximum width, in pixels, of the chart, in the `<number>px` format.\n   */\n  maxWidth?: string;\n  /**\n   * Controls whether the chart's legend should be displayed.\n   */\n  showLegend?: boolean;\n  /**\n   * The data to display in the chart.\n   */\n  data?: IDonutChartData[];\n  /**\n   * The value that should be displayed in the center of a Donut chart. `value` is ignored for Pie charts.\n   */\n  value?: string;\n  /**\n   * Controls the color of the value displayed in the center of a Donut chart.\n   */\n  valueColor?: ChartColor;\n  /**\n   * Controls the thickness of the donut segments. Default is **Thick**.\n   */\n  thickness?: DonutThickness;\n  /**\n   * Controls whether the outlines of the donut segments are displayed.\n   */\n  showOutlines?: boolean;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IPieChart.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of PieChart, false otherwise.\n */\nexport function isPieChart(value: unknown): value is IPieChart {\n  const obj = value as IPieChart;\n  return typeof obj === 'object' && obj.type === 'Chart.Pie';\n}\n\nexport type PieChartOptions = Partial<Omit<IPieChart, 'type'>>;\n\n/**\n * A pie chart.\n */\nexport class PieChart implements IPieChart {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Chart.Pie**.\n   */\n  readonly type = 'Chart.Pie';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * The title of the chart.\n   */\n  title?: string;\n  /**\n   * Controls whether the chart's title should be displayed. Defaults to `false`.\n   */\n  showTitle?: boolean = false;\n  /**\n   * The name of the set of colors to use to render the chart. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  colorSet?: ChartColorSet;\n  /**\n   * The maximum width, in pixels, of the chart, in the `<number>px` format.\n   */\n  maxWidth?: string;\n  /**\n   * Controls whether the chart's legend should be displayed.\n   */\n  showLegend?: boolean = true;\n  /**\n   * The data to display in the chart.\n   */\n  data?: IDonutChartData[];\n  /**\n   * The value that should be displayed in the center of a Donut chart. `value` is ignored for Pie charts.\n   */\n  value?: string;\n  /**\n   * Controls the color of the value displayed in the center of a Donut chart.\n   */\n  valueColor?: ChartColor;\n  /**\n   * Controls the thickness of the donut segments. Default is **Thick**.\n   */\n  thickness?: DonutThickness;\n  /**\n   * Controls whether the outlines of the donut segments are displayed.\n   */\n  showOutlines?: boolean = true;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(options: PieChartOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<IPieChart, 'type'>): PieChart {\n    return new PieChart(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withHorizontalAlignment(horizontalAlignment: HorizontalAlignment): this {\n    this.horizontalAlignment = horizontalAlignment;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withTitle(title: string): this {\n    this.title = title;\n    return this;\n  }\n\n  withShowTitle(showTitle = true): this {\n    this.showTitle = showTitle;\n    return this;\n  }\n\n  withColorSet(colorSet: ChartColorSet): this {\n    this.colorSet = colorSet;\n    return this;\n  }\n\n  withMaxWidth(maxWidth: string): this {\n    this.maxWidth = maxWidth;\n    return this;\n  }\n\n  withShowLegend(showLegend = false): this {\n    this.showLegend = showLegend;\n    return this;\n  }\n\n  withData(...data: IDonutChartData[]): this {\n    this.data = data;\n    return this;\n  }\n\n  withValue(value: string): this {\n    this.value = value;\n    return this;\n  }\n\n  withValueColor(valueColor: ChartColor): this {\n    this.valueColor = valueColor;\n    return this;\n  }\n\n  withThickness(thickness: DonutThickness): this {\n    this.thickness = thickness;\n    return this;\n  }\n\n  withShowOutlines(showOutlines = false): this {\n    this.showOutlines = showOutlines;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * A grouped vertical bar chart.\n */\nexport interface IGroupedVerticalBarChart {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Chart.VerticalBar.Grouped**.\n   */\n  readonly type: 'Chart.VerticalBar.Grouped';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * The title of the chart.\n   */\n  title?: string;\n  /**\n   * Controls whether the chart's title should be displayed. Defaults to `false`.\n   */\n  showTitle?: boolean;\n  /**\n   * The name of the set of colors to use to render the chart. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  colorSet?: ChartColorSet;\n  /**\n   * The maximum width, in pixels, of the chart, in the `<number>px` format.\n   */\n  maxWidth?: string;\n  /**\n   * Controls whether the chart's legend should be displayed.\n   */\n  showLegend?: boolean;\n  /**\n   * The title of the x axis.\n   */\n  xAxisTitle?: string;\n  /**\n   * The title of the y axis.\n   */\n  yAxisTitle?: string;\n  /**\n   * The color to use for all data points. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  color?: ChartColor;\n  /**\n   * Controls if bars in the chart should  be displayed as stacks instead of groups.\n   *\n   * **Note:** stacked vertical bar charts do not support custom Y ranges nor negative Y values.\n   */\n  stacked?: boolean;\n  /**\n   * The data points in a series.\n   */\n  data?: IGroupedVerticalBarChartData[];\n  /**\n   * Controls if values should be displayed on each bar.\n   */\n  showBarValues?: boolean;\n  /**\n   * The requested minimum for the Y axis range. The value used at runtime may be different to optimize visual presentation.\n   *\n   * `yMin` is ignored if `stacked` is set to `true`.\n   */\n  yMin?: number;\n  /**\n   * The requested maximum for the Y axis range. The value used at runtime may be different to optimize visual presentation.\n   *\n   * `yMax` is ignored if `stacked` is set to `true`.\n   */\n  yMax?: number;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IGroupedVerticalBarChart.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of GroupedVerticalBarChart, false otherwise.\n */\nexport function isGroupedVerticalBarChart(\n  value: unknown,\n): value is IGroupedVerticalBarChart {\n  const obj = value as IGroupedVerticalBarChart;\n  return typeof obj === 'object' && obj.type === 'Chart.VerticalBar.Grouped';\n}\n\nexport type GroupedVerticalBarChartOptions = Partial<\n  Omit<IGroupedVerticalBarChart, 'type'>\n>;\n\n/**\n * A grouped vertical bar chart.\n */\nexport class GroupedVerticalBarChart implements IGroupedVerticalBarChart {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Chart.VerticalBar.Grouped**.\n   */\n  readonly type = 'Chart.VerticalBar.Grouped';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * The title of the chart.\n   */\n  title?: string;\n  /**\n   * Controls whether the chart's title should be displayed. Defaults to `false`.\n   */\n  showTitle?: boolean = false;\n  /**\n   * The name of the set of colors to use to render the chart. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  colorSet?: ChartColorSet;\n  /**\n   * The maximum width, in pixels, of the chart, in the `<number>px` format.\n   */\n  maxWidth?: string;\n  /**\n   * Controls whether the chart's legend should be displayed.\n   */\n  showLegend?: boolean = true;\n  /**\n   * The title of the x axis.\n   */\n  xAxisTitle?: string;\n  /**\n   * The title of the y axis.\n   */\n  yAxisTitle?: string;\n  /**\n   * The color to use for all data points. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  color?: ChartColor;\n  /**\n   * Controls if bars in the chart should  be displayed as stacks instead of groups.\n   *\n   * **Note:** stacked vertical bar charts do not support custom Y ranges nor negative Y values.\n   */\n  stacked?: boolean = false;\n  /**\n   * The data points in a series.\n   */\n  data?: IGroupedVerticalBarChartData[];\n  /**\n   * Controls if values should be displayed on each bar.\n   */\n  showBarValues?: boolean = false;\n  /**\n   * The requested minimum for the Y axis range. The value used at runtime may be different to optimize visual presentation.\n   *\n   * `yMin` is ignored if `stacked` is set to `true`.\n   */\n  yMin?: number;\n  /**\n   * The requested maximum for the Y axis range. The value used at runtime may be different to optimize visual presentation.\n   *\n   * `yMax` is ignored if `stacked` is set to `true`.\n   */\n  yMax?: number;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(options: GroupedVerticalBarChartOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(\n    options: Omit<IGroupedVerticalBarChart, 'type'>,\n  ): GroupedVerticalBarChart {\n    return new GroupedVerticalBarChart(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withHorizontalAlignment(horizontalAlignment: HorizontalAlignment): this {\n    this.horizontalAlignment = horizontalAlignment;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withTitle(title: string): this {\n    this.title = title;\n    return this;\n  }\n\n  withShowTitle(showTitle = true): this {\n    this.showTitle = showTitle;\n    return this;\n  }\n\n  withColorSet(colorSet: ChartColorSet): this {\n    this.colorSet = colorSet;\n    return this;\n  }\n\n  withMaxWidth(maxWidth: string): this {\n    this.maxWidth = maxWidth;\n    return this;\n  }\n\n  withShowLegend(showLegend = false): this {\n    this.showLegend = showLegend;\n    return this;\n  }\n\n  withXAxisTitle(xAxisTitle: string): this {\n    this.xAxisTitle = xAxisTitle;\n    return this;\n  }\n\n  withYAxisTitle(yAxisTitle: string): this {\n    this.yAxisTitle = yAxisTitle;\n    return this;\n  }\n\n  withColor(color: ChartColor): this {\n    this.color = color;\n    return this;\n  }\n\n  withStacked(stacked = true): this {\n    this.stacked = stacked;\n    return this;\n  }\n\n  withData(...data: IGroupedVerticalBarChartData[]): this {\n    this.data = data;\n    return this;\n  }\n\n  withShowBarValues(showBarValues = true): this {\n    this.showBarValues = showBarValues;\n    return this;\n  }\n\n  withYMin(yMin: number): this {\n    this.yMin = yMin;\n    return this;\n  }\n\n  withYMax(yMax: number): this {\n    this.yMax = yMax;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * Represents a series of data points.\n */\nexport interface IGroupedVerticalBarChartData {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The legend of the chart.\n   */\n  legend?: string;\n  /**\n   * The data points in the series.\n   */\n  values?: IBarChartDataValue[];\n  /**\n   * The color to use for all data points in the series. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  color?: ChartColor;\n}\n\nexport type GroupedVerticalBarChartDataOptions =\n  Partial<IGroupedVerticalBarChartData>;\n\n/**\n * Represents a series of data points.\n */\nexport class GroupedVerticalBarChartData implements IGroupedVerticalBarChartData {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The legend of the chart.\n   */\n  legend?: string;\n  /**\n   * The data points in the series.\n   */\n  values?: IBarChartDataValue[];\n  /**\n   * The color to use for all data points in the series. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  color?: ChartColor;\n\n  constructor(options: GroupedVerticalBarChartDataOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(\n    options: IGroupedVerticalBarChartData,\n  ): GroupedVerticalBarChartData {\n    return new GroupedVerticalBarChartData(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withLegend(legend: string): this {\n    this.legend = legend;\n    return this;\n  }\n\n  withValues(...values: IBarChartDataValue[]): this {\n    this.values = values;\n    return this;\n  }\n\n  withColor(color: ChartColor): this {\n    this.color = color;\n    return this;\n  }\n}\n\n/**\n * A single data point in a bar chart.\n */\nexport interface IBarChartDataValue {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The x axis value of the data point.\n   */\n  x?: string;\n  /**\n   * The y axis value of the data point.\n   */\n  y?: number;\n}\n\nexport type BarChartDataValueOptions = Partial<IBarChartDataValue>;\n\n/**\n * A single data point in a bar chart.\n */\nexport class BarChartDataValue implements IBarChartDataValue {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The x axis value of the data point.\n   */\n  x?: string;\n  /**\n   * The y axis value of the data point.\n   */\n  y?: number = 0;\n\n  constructor(options: BarChartDataValueOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: IBarChartDataValue): BarChartDataValue {\n    return new BarChartDataValue(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withX(x: string): this {\n    this.x = x;\n    return this;\n  }\n\n  withY(y: number): this {\n    this.y = y;\n    return this;\n  }\n}\n\n/**\n * A vertical bar chart.\n */\nexport interface IVerticalBarChart {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Chart.VerticalBar**.\n   */\n  readonly type: 'Chart.VerticalBar';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * The title of the chart.\n   */\n  title?: string;\n  /**\n   * Controls whether the chart's title should be displayed. Defaults to `false`.\n   */\n  showTitle?: boolean;\n  /**\n   * The name of the set of colors to use to render the chart. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  colorSet?: ChartColorSet;\n  /**\n   * The maximum width, in pixels, of the chart, in the `<number>px` format.\n   */\n  maxWidth?: string;\n  /**\n   * Controls whether the chart's legend should be displayed.\n   */\n  showLegend?: boolean;\n  /**\n   * The title of the x axis.\n   */\n  xAxisTitle?: string;\n  /**\n   * The title of the y axis.\n   */\n  yAxisTitle?: string;\n  /**\n   * The data to display in the chart.\n   */\n  data?: IVerticalBarChartDataValue[];\n  /**\n   * The color to use for all data points. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  color?: ChartColor;\n  /**\n   * Controls if the bar values should be displayed.\n   */\n  showBarValues?: boolean;\n  /**\n   * The requested minimum for the Y axis range. The value used at runtime may be different to optimize visual presentation.\n   */\n  yMin?: number;\n  /**\n   * The requested maximum for the Y axis range. The value used at runtime may be different to optimize visual presentation.\n   */\n  yMax?: number;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IVerticalBarChart.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of VerticalBarChart, false otherwise.\n */\nexport function isVerticalBarChart(value: unknown): value is IVerticalBarChart {\n  const obj = value as IVerticalBarChart;\n  return typeof obj === 'object' && obj.type === 'Chart.VerticalBar';\n}\n\nexport type VerticalBarChartOptions = Partial<Omit<IVerticalBarChart, 'type'>>;\n\n/**\n * A vertical bar chart.\n */\nexport class VerticalBarChart implements IVerticalBarChart {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Chart.VerticalBar**.\n   */\n  readonly type = 'Chart.VerticalBar';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * The title of the chart.\n   */\n  title?: string;\n  /**\n   * Controls whether the chart's title should be displayed. Defaults to `false`.\n   */\n  showTitle?: boolean = false;\n  /**\n   * The name of the set of colors to use to render the chart. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  colorSet?: ChartColorSet;\n  /**\n   * The maximum width, in pixels, of the chart, in the `<number>px` format.\n   */\n  maxWidth?: string;\n  /**\n   * Controls whether the chart's legend should be displayed.\n   */\n  showLegend?: boolean = true;\n  /**\n   * The title of the x axis.\n   */\n  xAxisTitle?: string;\n  /**\n   * The title of the y axis.\n   */\n  yAxisTitle?: string;\n  /**\n   * The data to display in the chart.\n   */\n  data?: IVerticalBarChartDataValue[];\n  /**\n   * The color to use for all data points. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  color?: ChartColor;\n  /**\n   * Controls if the bar values should be displayed.\n   */\n  showBarValues?: boolean = false;\n  /**\n   * The requested minimum for the Y axis range. The value used at runtime may be different to optimize visual presentation.\n   */\n  yMin?: number;\n  /**\n   * The requested maximum for the Y axis range. The value used at runtime may be different to optimize visual presentation.\n   */\n  yMax?: number;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(options: VerticalBarChartOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<IVerticalBarChart, 'type'>): VerticalBarChart {\n    return new VerticalBarChart(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withHorizontalAlignment(horizontalAlignment: HorizontalAlignment): this {\n    this.horizontalAlignment = horizontalAlignment;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withTitle(title: string): this {\n    this.title = title;\n    return this;\n  }\n\n  withShowTitle(showTitle = true): this {\n    this.showTitle = showTitle;\n    return this;\n  }\n\n  withColorSet(colorSet: ChartColorSet): this {\n    this.colorSet = colorSet;\n    return this;\n  }\n\n  withMaxWidth(maxWidth: string): this {\n    this.maxWidth = maxWidth;\n    return this;\n  }\n\n  withShowLegend(showLegend = false): this {\n    this.showLegend = showLegend;\n    return this;\n  }\n\n  withXAxisTitle(xAxisTitle: string): this {\n    this.xAxisTitle = xAxisTitle;\n    return this;\n  }\n\n  withYAxisTitle(yAxisTitle: string): this {\n    this.yAxisTitle = yAxisTitle;\n    return this;\n  }\n\n  withData(...data: IVerticalBarChartDataValue[]): this {\n    this.data = data;\n    return this;\n  }\n\n  withColor(color: ChartColor): this {\n    this.color = color;\n    return this;\n  }\n\n  withShowBarValues(showBarValues = true): this {\n    this.showBarValues = showBarValues;\n    return this;\n  }\n\n  withYMin(yMin: number): this {\n    this.yMin = yMin;\n    return this;\n  }\n\n  withYMax(yMax: number): this {\n    this.yMax = yMax;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * Represents a data point in a vertical bar chart.\n */\nexport interface IVerticalBarChartDataValue {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The x axis value of the data point.\n   */\n  x?: string | number;\n  /**\n   * The y axis value of the data point.\n   */\n  y?: number;\n  /**\n   * The color to use for the bar associated with the data point. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  color?: ChartColor;\n}\n\nexport type VerticalBarChartDataValueOptions =\n  Partial<IVerticalBarChartDataValue>;\n\n/**\n * Represents a data point in a vertical bar chart.\n */\nexport class VerticalBarChartDataValue implements IVerticalBarChartDataValue {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The x axis value of the data point.\n   */\n  x?: string | number;\n  /**\n   * The y axis value of the data point.\n   */\n  y?: number = 0;\n  /**\n   * The color to use for the bar associated with the data point. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  color?: ChartColor;\n\n  constructor(options: VerticalBarChartDataValueOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: IVerticalBarChartDataValue): VerticalBarChartDataValue {\n    return new VerticalBarChartDataValue(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withX(x: string | number): this {\n    this.x = x;\n    return this;\n  }\n\n  withY(y: number): this {\n    this.y = y;\n    return this;\n  }\n\n  withColor(color: ChartColor): this {\n    this.color = color;\n    return this;\n  }\n}\n\n/**\n * A horizontal bar chart.\n */\nexport interface IHorizontalBarChart {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Chart.HorizontalBar**.\n   */\n  readonly type: 'Chart.HorizontalBar';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * The title of the chart.\n   */\n  title?: string;\n  /**\n   * Controls whether the chart's title should be displayed. Defaults to `false`.\n   */\n  showTitle?: boolean;\n  /**\n   * The name of the set of colors to use to render the chart. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  colorSet?: ChartColorSet;\n  /**\n   * The maximum width, in pixels, of the chart, in the `<number>px` format.\n   */\n  maxWidth?: string;\n  /**\n   * Controls whether the chart's legend should be displayed.\n   */\n  showLegend?: boolean;\n  /**\n   * The title of the x axis.\n   */\n  xAxisTitle?: string;\n  /**\n   * The title of the y axis.\n   */\n  yAxisTitle?: string;\n  /**\n   * The color to use for all data points. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  color?: ChartColor;\n  /**\n   * The data points in the chart.\n   */\n  data?: IHorizontalBarChartDataValue[];\n  /**\n   * Controls how the chart should be visually laid out.\n   */\n  displayMode?: HorizontalBarChartDisplayMode;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IHorizontalBarChart.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of HorizontalBarChart, false otherwise.\n */\nexport function isHorizontalBarChart(\n  value: unknown,\n): value is IHorizontalBarChart {\n  const obj = value as IHorizontalBarChart;\n  return typeof obj === 'object' && obj.type === 'Chart.HorizontalBar';\n}\n\nexport type HorizontalBarChartOptions = Partial<\n  Omit<IHorizontalBarChart, 'type'>\n>;\n\n/**\n * A horizontal bar chart.\n */\nexport class HorizontalBarChart implements IHorizontalBarChart {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Chart.HorizontalBar**.\n   */\n  readonly type = 'Chart.HorizontalBar';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * The title of the chart.\n   */\n  title?: string;\n  /**\n   * Controls whether the chart's title should be displayed. Defaults to `false`.\n   */\n  showTitle?: boolean = false;\n  /**\n   * The name of the set of colors to use to render the chart. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  colorSet?: ChartColorSet;\n  /**\n   * The maximum width, in pixels, of the chart, in the `<number>px` format.\n   */\n  maxWidth?: string;\n  /**\n   * Controls whether the chart's legend should be displayed.\n   */\n  showLegend?: boolean = true;\n  /**\n   * The title of the x axis.\n   */\n  xAxisTitle?: string;\n  /**\n   * The title of the y axis.\n   */\n  yAxisTitle?: string;\n  /**\n   * The color to use for all data points. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  color?: ChartColor;\n  /**\n   * The data points in the chart.\n   */\n  data?: IHorizontalBarChartDataValue[];\n  /**\n   * Controls how the chart should be visually laid out.\n   */\n  displayMode?: HorizontalBarChartDisplayMode = 'AbsoluteWithAxis';\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(options: HorizontalBarChartOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<IHorizontalBarChart, 'type'>): HorizontalBarChart {\n    return new HorizontalBarChart(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withHorizontalAlignment(horizontalAlignment: HorizontalAlignment): this {\n    this.horizontalAlignment = horizontalAlignment;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withTitle(title: string): this {\n    this.title = title;\n    return this;\n  }\n\n  withShowTitle(showTitle = true): this {\n    this.showTitle = showTitle;\n    return this;\n  }\n\n  withColorSet(colorSet: ChartColorSet): this {\n    this.colorSet = colorSet;\n    return this;\n  }\n\n  withMaxWidth(maxWidth: string): this {\n    this.maxWidth = maxWidth;\n    return this;\n  }\n\n  withShowLegend(showLegend = false): this {\n    this.showLegend = showLegend;\n    return this;\n  }\n\n  withXAxisTitle(xAxisTitle: string): this {\n    this.xAxisTitle = xAxisTitle;\n    return this;\n  }\n\n  withYAxisTitle(yAxisTitle: string): this {\n    this.yAxisTitle = yAxisTitle;\n    return this;\n  }\n\n  withColor(color: ChartColor): this {\n    this.color = color;\n    return this;\n  }\n\n  withData(...data: IHorizontalBarChartDataValue[]): this {\n    this.data = data;\n    return this;\n  }\n\n  withDisplayMode(displayMode: HorizontalBarChartDisplayMode): this {\n    this.displayMode = displayMode;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * Represents a single data point in a horizontal bar chart.\n */\nexport interface IHorizontalBarChartDataValue {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The x axis value of the data point.\n   */\n  x?: string;\n  /**\n   * The y axis value of the data point.\n   */\n  y?: number;\n  /**\n   * The color of the bar associated with the data point. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  color?: ChartColor;\n}\n\nexport type HorizontalBarChartDataValueOptions =\n  Partial<IHorizontalBarChartDataValue>;\n\n/**\n * Represents a single data point in a horizontal bar chart.\n */\nexport class HorizontalBarChartDataValue implements IHorizontalBarChartDataValue {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The x axis value of the data point.\n   */\n  x?: string;\n  /**\n   * The y axis value of the data point.\n   */\n  y?: number = 0;\n  /**\n   * The color of the bar associated with the data point. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  color?: ChartColor;\n\n  constructor(options: HorizontalBarChartDataValueOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(\n    options: IHorizontalBarChartDataValue,\n  ): HorizontalBarChartDataValue {\n    return new HorizontalBarChartDataValue(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withX(x: string): this {\n    this.x = x;\n    return this;\n  }\n\n  withY(y: number): this {\n    this.y = y;\n    return this;\n  }\n\n  withColor(color: ChartColor): this {\n    this.color = color;\n    return this;\n  }\n}\n\n/**\n * A stacked horizontal bar chart.\n */\nexport interface IStackedHorizontalBarChart {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Chart.HorizontalBar.Stacked**.\n   */\n  readonly type: 'Chart.HorizontalBar.Stacked';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * The title of the chart.\n   */\n  title?: string;\n  /**\n   * Controls whether the chart's title should be displayed. Defaults to `false`.\n   */\n  showTitle?: boolean;\n  /**\n   * The name of the set of colors to use to render the chart. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  colorSet?: ChartColorSet;\n  /**\n   * The maximum width, in pixels, of the chart, in the `<number>px` format.\n   */\n  maxWidth?: string;\n  /**\n   * Controls whether the chart's legend should be displayed.\n   */\n  showLegend?: boolean;\n  /**\n   * The title of the x axis.\n   */\n  xAxisTitle?: string;\n  /**\n   * The title of the y axis.\n   */\n  yAxisTitle?: string;\n  /**\n   * The color to use for all data points. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  color?: ChartColor;\n  /**\n   * The data to display in the chart.\n   */\n  data?: IStackedHorizontalBarChartData[];\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IStackedHorizontalBarChart.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of StackedHorizontalBarChart, false otherwise.\n */\nexport function isStackedHorizontalBarChart(\n  value: unknown,\n): value is IStackedHorizontalBarChart {\n  const obj = value as IStackedHorizontalBarChart;\n  return typeof obj === 'object' && obj.type === 'Chart.HorizontalBar.Stacked';\n}\n\nexport type StackedHorizontalBarChartOptions = Partial<\n  Omit<IStackedHorizontalBarChart, 'type'>\n>;\n\n/**\n * A stacked horizontal bar chart.\n */\nexport class StackedHorizontalBarChart implements IStackedHorizontalBarChart {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Chart.HorizontalBar.Stacked**.\n   */\n  readonly type = 'Chart.HorizontalBar.Stacked';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * The title of the chart.\n   */\n  title?: string;\n  /**\n   * Controls whether the chart's title should be displayed. Defaults to `false`.\n   */\n  showTitle?: boolean = false;\n  /**\n   * The name of the set of colors to use to render the chart. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  colorSet?: ChartColorSet;\n  /**\n   * The maximum width, in pixels, of the chart, in the `<number>px` format.\n   */\n  maxWidth?: string;\n  /**\n   * Controls whether the chart's legend should be displayed.\n   */\n  showLegend?: boolean = true;\n  /**\n   * The title of the x axis.\n   */\n  xAxisTitle?: string;\n  /**\n   * The title of the y axis.\n   */\n  yAxisTitle?: string;\n  /**\n   * The color to use for all data points. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  color?: ChartColor;\n  /**\n   * The data to display in the chart.\n   */\n  data?: IStackedHorizontalBarChartData[];\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(options: StackedHorizontalBarChartOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(\n    options: Omit<IStackedHorizontalBarChart, 'type'>,\n  ): StackedHorizontalBarChart {\n    return new StackedHorizontalBarChart(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withHorizontalAlignment(horizontalAlignment: HorizontalAlignment): this {\n    this.horizontalAlignment = horizontalAlignment;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withTitle(title: string): this {\n    this.title = title;\n    return this;\n  }\n\n  withShowTitle(showTitle = true): this {\n    this.showTitle = showTitle;\n    return this;\n  }\n\n  withColorSet(colorSet: ChartColorSet): this {\n    this.colorSet = colorSet;\n    return this;\n  }\n\n  withMaxWidth(maxWidth: string): this {\n    this.maxWidth = maxWidth;\n    return this;\n  }\n\n  withShowLegend(showLegend = false): this {\n    this.showLegend = showLegend;\n    return this;\n  }\n\n  withXAxisTitle(xAxisTitle: string): this {\n    this.xAxisTitle = xAxisTitle;\n    return this;\n  }\n\n  withYAxisTitle(yAxisTitle: string): this {\n    this.yAxisTitle = yAxisTitle;\n    return this;\n  }\n\n  withColor(color: ChartColor): this {\n    this.color = color;\n    return this;\n  }\n\n  withData(...data: IStackedHorizontalBarChartData[]): this {\n    this.data = data;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * Defines the collection of data series to display in as a stacked horizontal bar chart.\n */\nexport interface IStackedHorizontalBarChartData {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The title of the series.\n   */\n  title?: string;\n  /**\n   * The data points in the series.\n   */\n  data?: IStackedHorizontalBarChartDataPoint[];\n}\n\nexport type StackedHorizontalBarChartDataOptions =\n  Partial<IStackedHorizontalBarChartData>;\n\n/**\n * Defines the collection of data series to display in as a stacked horizontal bar chart.\n */\nexport class StackedHorizontalBarChartData implements IStackedHorizontalBarChartData {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The title of the series.\n   */\n  title?: string;\n  /**\n   * The data points in the series.\n   */\n  data?: IStackedHorizontalBarChartDataPoint[];\n\n  constructor(options: StackedHorizontalBarChartDataOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(\n    options: IStackedHorizontalBarChartData,\n  ): StackedHorizontalBarChartData {\n    return new StackedHorizontalBarChartData(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withTitle(title: string): this {\n    this.title = title;\n    return this;\n  }\n\n  withData(...data: IStackedHorizontalBarChartDataPoint[]): this {\n    this.data = data;\n    return this;\n  }\n}\n\n/**\n * A data point in a series.\n */\nexport interface IStackedHorizontalBarChartDataPoint {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The legend associated with the data point.\n   */\n  legend?: string;\n  /**\n   * The value of the data point.\n   */\n  value?: number;\n  /**\n   * The color to use to render the bar associated with the data point. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  color?: ChartColor;\n}\n\nexport type StackedHorizontalBarChartDataPointOptions =\n  Partial<IStackedHorizontalBarChartDataPoint>;\n\n/**\n * A data point in a series.\n */\nexport class StackedHorizontalBarChartDataPoint implements IStackedHorizontalBarChartDataPoint {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The legend associated with the data point.\n   */\n  legend?: string;\n  /**\n   * The value of the data point.\n   */\n  value?: number = 0;\n  /**\n   * The color to use to render the bar associated with the data point. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  color?: ChartColor;\n\n  constructor(options: StackedHorizontalBarChartDataPointOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(\n    options: IStackedHorizontalBarChartDataPoint,\n  ): StackedHorizontalBarChartDataPoint {\n    return new StackedHorizontalBarChartDataPoint(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withLegend(legend: string): this {\n    this.legend = legend;\n    return this;\n  }\n\n  withValue(value: number): this {\n    this.value = value;\n    return this;\n  }\n\n  withColor(color: ChartColor): this {\n    this.color = color;\n    return this;\n  }\n}\n\n/**\n * A line chart.\n */\nexport interface ILineChart {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Chart.Line**.\n   */\n  readonly type: 'Chart.Line';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * The title of the chart.\n   */\n  title?: string;\n  /**\n   * Controls whether the chart's title should be displayed. Defaults to `false`.\n   */\n  showTitle?: boolean;\n  /**\n   * The name of the set of colors to use to render the chart. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  colorSet?: ChartColorSet;\n  /**\n   * The maximum width, in pixels, of the chart, in the `<number>px` format.\n   */\n  maxWidth?: string;\n  /**\n   * Controls whether the chart's legend should be displayed.\n   */\n  showLegend?: boolean;\n  /**\n   * The title of the x axis.\n   */\n  xAxisTitle?: string;\n  /**\n   * The title of the y axis.\n   */\n  yAxisTitle?: string;\n  /**\n   * The color to use for all data points. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  color?: ChartColor;\n  /**\n   * The data point series in the line chart.\n   */\n  data?: ILineChartData[];\n  /**\n   * The maximum y range.\n   */\n  yMin?: number;\n  /**\n   * The minimum y range.\n   */\n  yMax?: number;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type ILineChart.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of LineChart, false otherwise.\n */\nexport function isLineChart(value: unknown): value is ILineChart {\n  const obj = value as ILineChart;\n  return typeof obj === 'object' && obj.type === 'Chart.Line';\n}\n\nexport type LineChartOptions = Partial<Omit<ILineChart, 'type'>>;\n\n/**\n * A line chart.\n */\nexport class LineChart implements ILineChart {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Chart.Line**.\n   */\n  readonly type = 'Chart.Line';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * The title of the chart.\n   */\n  title?: string;\n  /**\n   * Controls whether the chart's title should be displayed. Defaults to `false`.\n   */\n  showTitle?: boolean = false;\n  /**\n   * The name of the set of colors to use to render the chart. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  colorSet?: ChartColorSet;\n  /**\n   * The maximum width, in pixels, of the chart, in the `<number>px` format.\n   */\n  maxWidth?: string;\n  /**\n   * Controls whether the chart's legend should be displayed.\n   */\n  showLegend?: boolean = true;\n  /**\n   * The title of the x axis.\n   */\n  xAxisTitle?: string;\n  /**\n   * The title of the y axis.\n   */\n  yAxisTitle?: string;\n  /**\n   * The color to use for all data points. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  color?: ChartColor;\n  /**\n   * The data point series in the line chart.\n   */\n  data?: ILineChartData[];\n  /**\n   * The maximum y range.\n   */\n  yMin?: number;\n  /**\n   * The minimum y range.\n   */\n  yMax?: number;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(options: LineChartOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<ILineChart, 'type'>): LineChart {\n    return new LineChart(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withHorizontalAlignment(horizontalAlignment: HorizontalAlignment): this {\n    this.horizontalAlignment = horizontalAlignment;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withTitle(title: string): this {\n    this.title = title;\n    return this;\n  }\n\n  withShowTitle(showTitle = true): this {\n    this.showTitle = showTitle;\n    return this;\n  }\n\n  withColorSet(colorSet: ChartColorSet): this {\n    this.colorSet = colorSet;\n    return this;\n  }\n\n  withMaxWidth(maxWidth: string): this {\n    this.maxWidth = maxWidth;\n    return this;\n  }\n\n  withShowLegend(showLegend = false): this {\n    this.showLegend = showLegend;\n    return this;\n  }\n\n  withXAxisTitle(xAxisTitle: string): this {\n    this.xAxisTitle = xAxisTitle;\n    return this;\n  }\n\n  withYAxisTitle(yAxisTitle: string): this {\n    this.yAxisTitle = yAxisTitle;\n    return this;\n  }\n\n  withColor(color: ChartColor): this {\n    this.color = color;\n    return this;\n  }\n\n  withData(...data: ILineChartData[]): this {\n    this.data = data;\n    return this;\n  }\n\n  withYMin(yMin: number): this {\n    this.yMin = yMin;\n    return this;\n  }\n\n  withYMax(yMax: number): this {\n    this.yMax = yMax;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * Represents a collection of data points series in a line chart.\n */\nexport interface ILineChartData {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The legend of the chart.\n   */\n  legend?: string;\n  /**\n   * The data points in the series.\n   */\n  values?: ILineChartValue[];\n  /**\n   * The color all data points in the series. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  color?: ChartColor;\n}\n\nexport type LineChartDataOptions = Partial<ILineChartData>;\n\n/**\n * Represents a collection of data points series in a line chart.\n */\nexport class LineChartData implements ILineChartData {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The legend of the chart.\n   */\n  legend?: string;\n  /**\n   * The data points in the series.\n   */\n  values?: ILineChartValue[];\n  /**\n   * The color all data points in the series. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  color?: ChartColor;\n\n  constructor(options: LineChartDataOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: ILineChartData): LineChartData {\n    return new LineChartData(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withLegend(legend: string): this {\n    this.legend = legend;\n    return this;\n  }\n\n  withValues(...values: ILineChartValue[]): this {\n    this.values = values;\n    return this;\n  }\n\n  withColor(color: ChartColor): this {\n    this.color = color;\n    return this;\n  }\n}\n\n/**\n * Represents a single data point in a line chart.\n */\nexport interface ILineChartValue {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The x axis value of the data point.\n   *\n   * If all x values of the x [Chart.Line](https://adaptivecards.microsoft.com/?topic=Chart.Line) are expressed as a number, or if all x values are expressed as a date string in the `YYYY-MM-DD` format, the chart will be rendered as a time series chart, i.e. x axis values will span across the minimum x value to maximum x value range.\n   *\n   * Otherwise, if x values are represented as a mix of numbers and strings or if at least one x value isn't in the `YYYY-MM-DD` format, the chart will be rendered as a categorical chart, i.e. x axis values will be displayed as categories.\n   */\n  x?: number | string;\n  /**\n   * The y axis value of the data point.\n   */\n  y?: number;\n}\n\nexport type LineChartValueOptions = Partial<ILineChartValue>;\n\n/**\n * Represents a single data point in a line chart.\n */\nexport class LineChartValue implements ILineChartValue {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The x axis value of the data point.\n   *\n   * If all x values of the x [Chart.Line](https://adaptivecards.microsoft.com/?topic=Chart.Line) are expressed as a number, or if all x values are expressed as a date string in the `YYYY-MM-DD` format, the chart will be rendered as a time series chart, i.e. x axis values will span across the minimum x value to maximum x value range.\n   *\n   * Otherwise, if x values are represented as a mix of numbers and strings or if at least one x value isn't in the `YYYY-MM-DD` format, the chart will be rendered as a categorical chart, i.e. x axis values will be displayed as categories.\n   */\n  x?: number | string;\n  /**\n   * The y axis value of the data point.\n   */\n  y?: number = 0;\n\n  constructor(options: LineChartValueOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: ILineChartValue): LineChartValue {\n    return new LineChartValue(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withX(x: number | string): this {\n    this.x = x;\n    return this;\n  }\n\n  withY(y: number): this {\n    this.y = y;\n    return this;\n  }\n}\n\n/**\n * A gauge chart.\n */\nexport interface IGaugeChart {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Chart.Gauge**.\n   */\n  readonly type: 'Chart.Gauge';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * The title of the chart.\n   */\n  title?: string;\n  /**\n   * Controls whether the chart's title should be displayed. Defaults to `false`.\n   */\n  showTitle?: boolean;\n  /**\n   * The name of the set of colors to use to render the chart. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  colorSet?: ChartColorSet;\n  /**\n   * The maximum width, in pixels, of the chart, in the `<number>px` format.\n   */\n  maxWidth?: string;\n  /**\n   * Controls whether the chart's legend should be displayed.\n   */\n  showLegend?: boolean;\n  /**\n   * The minimum value of the gauge.\n   */\n  min?: number;\n  /**\n   * The maximum value of the gauge.\n   */\n  max?: number;\n  /**\n   * The sub-label of the gauge.\n   */\n  subLabel?: string;\n  /**\n   * Controls whether the min/max values should be displayed.\n   */\n  showMinMax?: boolean;\n  /**\n   * Controls whether the gauge's needle is displayed. Default is **true**.\n   */\n  showNeedle?: boolean;\n  /**\n   * Controls whether the outlines of the gauge segments are displayed.\n   */\n  showOutlines?: boolean;\n  /**\n   * The segments to display in the gauge.\n   */\n  segments?: IGaugeChartLegend[];\n  /**\n   * The value of the gauge.\n   */\n  value?: number;\n  /**\n   * The format used to display the gauge's value.\n   */\n  valueFormat?: GaugeChartValueFormat;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IGaugeChart.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of GaugeChart, false otherwise.\n */\nexport function isGaugeChart(value: unknown): value is IGaugeChart {\n  const obj = value as IGaugeChart;\n  return typeof obj === 'object' && obj.type === 'Chart.Gauge';\n}\n\nexport type GaugeChartOptions = Partial<Omit<IGaugeChart, 'type'>>;\n\n/**\n * A gauge chart.\n */\nexport class GaugeChart implements IGaugeChart {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Chart.Gauge**.\n   */\n  readonly type = 'Chart.Gauge';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * The title of the chart.\n   */\n  title?: string;\n  /**\n   * Controls whether the chart's title should be displayed. Defaults to `false`.\n   */\n  showTitle?: boolean = false;\n  /**\n   * The name of the set of colors to use to render the chart. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  colorSet?: ChartColorSet;\n  /**\n   * The maximum width, in pixels, of the chart, in the `<number>px` format.\n   */\n  maxWidth?: string;\n  /**\n   * Controls whether the chart's legend should be displayed.\n   */\n  showLegend?: boolean = true;\n  /**\n   * The minimum value of the gauge.\n   */\n  min?: number = 0;\n  /**\n   * The maximum value of the gauge.\n   */\n  max?: number;\n  /**\n   * The sub-label of the gauge.\n   */\n  subLabel?: string;\n  /**\n   * Controls whether the min/max values should be displayed.\n   */\n  showMinMax?: boolean = true;\n  /**\n   * Controls whether the gauge's needle is displayed. Default is **true**.\n   */\n  showNeedle?: boolean = true;\n  /**\n   * Controls whether the outlines of the gauge segments are displayed.\n   */\n  showOutlines?: boolean = true;\n  /**\n   * The segments to display in the gauge.\n   */\n  segments?: IGaugeChartLegend[];\n  /**\n   * The value of the gauge.\n   */\n  value?: number = 0;\n  /**\n   * The format used to display the gauge's value.\n   */\n  valueFormat?: GaugeChartValueFormat = 'Percentage';\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(options: GaugeChartOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<IGaugeChart, 'type'>): GaugeChart {\n    return new GaugeChart(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withHorizontalAlignment(horizontalAlignment: HorizontalAlignment): this {\n    this.horizontalAlignment = horizontalAlignment;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withTitle(title: string): this {\n    this.title = title;\n    return this;\n  }\n\n  withShowTitle(showTitle = true): this {\n    this.showTitle = showTitle;\n    return this;\n  }\n\n  withColorSet(colorSet: ChartColorSet): this {\n    this.colorSet = colorSet;\n    return this;\n  }\n\n  withMaxWidth(maxWidth: string): this {\n    this.maxWidth = maxWidth;\n    return this;\n  }\n\n  withShowLegend(showLegend = false): this {\n    this.showLegend = showLegend;\n    return this;\n  }\n\n  withMin(min: number): this {\n    this.min = min;\n    return this;\n  }\n\n  withMax(max: number): this {\n    this.max = max;\n    return this;\n  }\n\n  withSubLabel(subLabel: string): this {\n    this.subLabel = subLabel;\n    return this;\n  }\n\n  withShowMinMax(showMinMax = false): this {\n    this.showMinMax = showMinMax;\n    return this;\n  }\n\n  withShowNeedle(showNeedle = false): this {\n    this.showNeedle = showNeedle;\n    return this;\n  }\n\n  withShowOutlines(showOutlines = false): this {\n    this.showOutlines = showOutlines;\n    return this;\n  }\n\n  withSegments(...segments: IGaugeChartLegend[]): this {\n    this.segments = segments;\n    return this;\n  }\n\n  withValue(value: number): this {\n    this.value = value;\n    return this;\n  }\n\n  withValueFormat(valueFormat: GaugeChartValueFormat): this {\n    this.valueFormat = valueFormat;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * The legend of the chart.\n */\nexport interface IGaugeChartLegend {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The size of the segment.\n   */\n  size?: number;\n  /**\n   * The legend text associated with the segment.\n   */\n  legend?: string;\n  /**\n   * The color to use for the segment. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  color?: ChartColor;\n}\n\nexport type GaugeChartLegendOptions = Partial<IGaugeChartLegend>;\n\n/**\n * The legend of the chart.\n */\nexport class GaugeChartLegend implements IGaugeChartLegend {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The size of the segment.\n   */\n  size?: number = 0;\n  /**\n   * The legend text associated with the segment.\n   */\n  legend?: string;\n  /**\n   * The color to use for the segment. See [Chart colors reference](https://adaptivecards.microsoft.com/?topic=chart-colors-reference).\n   */\n  color?: ChartColor;\n\n  constructor(options: GaugeChartLegendOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: IGaugeChartLegend): GaugeChartLegend {\n    return new GaugeChartLegend(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withSize(size: number): this {\n    this.size = size;\n    return this;\n  }\n\n  withLegend(legend: string): this {\n    this.legend = legend;\n    return this;\n  }\n\n  withColor(color: ChartColor): this {\n    this.color = color;\n    return this;\n  }\n}\n\n/**\n * A formatted and syntax-colored code block.\n */\nexport interface ICodeBlock {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **CodeBlock**.\n   */\n  readonly type: 'CodeBlock';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * The code snippet to display.\n   */\n  codeSnippet?: string;\n  /**\n   * The language the code snippet is expressed in.\n   */\n  language?: CodeLanguage;\n  /**\n   * A number that represents the line in the file from where the code snippet was extracted.\n   */\n  startLineNumber?: number;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type ICodeBlock.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of CodeBlock, false otherwise.\n */\nexport function isCodeBlock(value: unknown): value is ICodeBlock {\n  const obj = value as ICodeBlock;\n  return typeof obj === 'object' && obj.type === 'CodeBlock';\n}\n\nexport type CodeBlockOptions = Partial<Omit<ICodeBlock, 'type'>>;\n\n/**\n * A formatted and syntax-colored code block.\n */\nexport class CodeBlock implements ICodeBlock {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **CodeBlock**.\n   */\n  readonly type = 'CodeBlock';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * The code snippet to display.\n   */\n  codeSnippet?: string;\n  /**\n   * The language the code snippet is expressed in.\n   */\n  language?: CodeLanguage = 'PlainText';\n  /**\n   * A number that represents the line in the file from where the code snippet was extracted.\n   */\n  startLineNumber?: number = 1;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(options: CodeBlockOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<ICodeBlock, 'type'>): CodeBlock {\n    return new CodeBlock(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withHorizontalAlignment(horizontalAlignment: HorizontalAlignment): this {\n    this.horizontalAlignment = horizontalAlignment;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withCodeSnippet(codeSnippet: string): this {\n    this.codeSnippet = codeSnippet;\n    return this;\n  }\n\n  withLanguage(language: CodeLanguage): this {\n    this.language = language;\n    return this;\n  }\n\n  withStartLineNumber(startLineNumber: number): this {\n    this.startLineNumber = startLineNumber;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * Displays a user's information, including their profile picture.\n */\nexport interface IComUserMicrosoftGraphComponent {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Component**.\n   */\n  readonly type: 'Component';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * Must be **graph.microsoft.com/user**.\n   */\n  readonly name: 'graph.microsoft.com/user';\n  /**\n   * The properties of the Persona component.\n   */\n  properties?: IPersonaProperties;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IComUserMicrosoftGraphComponent.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of ComUserMicrosoftGraphComponent, false otherwise.\n */\nexport function isComUserMicrosoftGraphComponent(\n  value: unknown,\n): value is IComUserMicrosoftGraphComponent {\n  const obj = value as IComUserMicrosoftGraphComponent;\n  return (\n    typeof obj === 'object' &&\n    obj.type === 'Component' &&\n    obj.name === 'graph.microsoft.com/user'\n  );\n}\n\nexport type ComUserMicrosoftGraphComponentOptions = Partial<\n  Omit<IComUserMicrosoftGraphComponent, 'type' | 'name'>\n>;\n\n/**\n * Displays a user's information, including their profile picture.\n */\nexport class ComUserMicrosoftGraphComponent implements IComUserMicrosoftGraphComponent {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Component**.\n   */\n  readonly type = 'Component';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * Must be **graph.microsoft.com/user**.\n   */\n  readonly name = 'graph.microsoft.com/user';\n  /**\n   * The properties of the Persona component.\n   */\n  properties?: IPersonaProperties;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(options: ComUserMicrosoftGraphComponentOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(\n    options: Omit<IComUserMicrosoftGraphComponent, 'type' | 'name'>,\n  ): ComUserMicrosoftGraphComponent {\n    return new ComUserMicrosoftGraphComponent(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withHorizontalAlignment(horizontalAlignment: HorizontalAlignment): this {\n    this.horizontalAlignment = horizontalAlignment;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withProperties(properties: IPersonaProperties): this {\n    this.properties = properties;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * Represents the properties of a Persona component.\n */\nexport interface IPersonaProperties {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The Id of the persona.\n   */\n  id?: string;\n  /**\n   * The UPN of the persona.\n   */\n  userPrincipalName?: string;\n  /**\n   * The display name of the persona.\n   */\n  displayName?: string;\n  /**\n   * Defines the style of the icon for the persona.\n   */\n  iconStyle?: PersonaIconStyle;\n  /**\n   * Defines how the persona should be displayed.\n   */\n  style?: PersonaDisplayStyle;\n}\n\nexport type PersonaPropertiesOptions = Partial<IPersonaProperties>;\n\n/**\n * Represents the properties of a Persona component.\n */\nexport class PersonaProperties implements IPersonaProperties {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The Id of the persona.\n   */\n  id?: string;\n  /**\n   * The UPN of the persona.\n   */\n  userPrincipalName?: string;\n  /**\n   * The display name of the persona.\n   */\n  displayName?: string;\n  /**\n   * Defines the style of the icon for the persona.\n   */\n  iconStyle?: PersonaIconStyle;\n  /**\n   * Defines how the persona should be displayed.\n   */\n  style?: PersonaDisplayStyle;\n\n  constructor(options: PersonaPropertiesOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: IPersonaProperties): PersonaProperties {\n    return new PersonaProperties(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withUserPrincipalName(userPrincipalName: string): this {\n    this.userPrincipalName = userPrincipalName;\n    return this;\n  }\n\n  withDisplayName(displayName: string): this {\n    this.displayName = displayName;\n    return this;\n  }\n\n  withIconStyle(iconStyle: PersonaIconStyle): this {\n    this.iconStyle = iconStyle;\n    return this;\n  }\n\n  withStyle(style: PersonaDisplayStyle): this {\n    this.style = style;\n    return this;\n  }\n}\n\n/**\n * Displays multiple users' information, including their profile pictures.\n */\nexport interface IComUsersMicrosoftGraphComponent {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Component**.\n   */\n  readonly type: 'Component';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * Must be **graph.microsoft.com/users**.\n   */\n  readonly name: 'graph.microsoft.com/users';\n  /**\n   * The properties of the PersonaSet component.\n   */\n  properties?: IPersonaSetProperties;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IComUsersMicrosoftGraphComponent.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of ComUsersMicrosoftGraphComponent, false otherwise.\n */\nexport function isComUsersMicrosoftGraphComponent(\n  value: unknown,\n): value is IComUsersMicrosoftGraphComponent {\n  const obj = value as IComUsersMicrosoftGraphComponent;\n  return (\n    typeof obj === 'object' &&\n    obj.type === 'Component' &&\n    obj.name === 'graph.microsoft.com/users'\n  );\n}\n\nexport type ComUsersMicrosoftGraphComponentOptions = Partial<\n  Omit<IComUsersMicrosoftGraphComponent, 'type' | 'name'>\n>;\n\n/**\n * Displays multiple users' information, including their profile pictures.\n */\nexport class ComUsersMicrosoftGraphComponent implements IComUsersMicrosoftGraphComponent {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Component**.\n   */\n  readonly type = 'Component';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * Must be **graph.microsoft.com/users**.\n   */\n  readonly name = 'graph.microsoft.com/users';\n  /**\n   * The properties of the PersonaSet component.\n   */\n  properties?: IPersonaSetProperties;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(options: ComUsersMicrosoftGraphComponentOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(\n    options: Omit<IComUsersMicrosoftGraphComponent, 'type' | 'name'>,\n  ): ComUsersMicrosoftGraphComponent {\n    return new ComUsersMicrosoftGraphComponent(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withHorizontalAlignment(horizontalAlignment: HorizontalAlignment): this {\n    this.horizontalAlignment = horizontalAlignment;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withProperties(properties: IPersonaSetProperties): this {\n    this.properties = properties;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * Represents the properties of a PersonaSet component.\n */\nexport interface IPersonaSetProperties {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The users a PersonaSet component should display.\n   */\n  users?: IPersonaProperties[];\n  /**\n   * Defines the style of the icon for the personas in the set.\n   */\n  iconStyle?: PersonaIconStyle;\n  /**\n   * Defines how each persona in the set should be displayed.\n   */\n  style?: PersonaDisplayStyle;\n}\n\nexport type PersonaSetPropertiesOptions = Partial<IPersonaSetProperties>;\n\n/**\n * Represents the properties of a PersonaSet component.\n */\nexport class PersonaSetProperties implements IPersonaSetProperties {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The users a PersonaSet component should display.\n   */\n  users?: IPersonaProperties[];\n  /**\n   * Defines the style of the icon for the personas in the set.\n   */\n  iconStyle?: PersonaIconStyle;\n  /**\n   * Defines how each persona in the set should be displayed.\n   */\n  style?: PersonaDisplayStyle;\n\n  constructor(options: PersonaSetPropertiesOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: IPersonaSetProperties): PersonaSetProperties {\n    return new PersonaSetProperties(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withUsers(...users: IPersonaProperties[]): this {\n    this.users = users;\n    return this;\n  }\n\n  withIconStyle(iconStyle: PersonaIconStyle): this {\n    this.iconStyle = iconStyle;\n    return this;\n  }\n\n  withStyle(style: PersonaDisplayStyle): this {\n    this.style = style;\n    return this;\n  }\n}\n\n/**\n * Displays information about a generic graph resource.\n */\nexport interface IComResourceMicrosoftGraphComponent {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Component**.\n   */\n  readonly type: 'Component';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * Must be **graph.microsoft.com/resource**.\n   */\n  readonly name: 'graph.microsoft.com/resource';\n  /**\n   * The properties of the resource.\n   */\n  properties?: IResourceProperties;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IComResourceMicrosoftGraphComponent.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of ComResourceMicrosoftGraphComponent, false otherwise.\n */\nexport function isComResourceMicrosoftGraphComponent(\n  value: unknown,\n): value is IComResourceMicrosoftGraphComponent {\n  const obj = value as IComResourceMicrosoftGraphComponent;\n  return (\n    typeof obj === 'object' &&\n    obj.type === 'Component' &&\n    obj.name === 'graph.microsoft.com/resource'\n  );\n}\n\nexport type ComResourceMicrosoftGraphComponentOptions = Partial<\n  Omit<IComResourceMicrosoftGraphComponent, 'type' | 'name'>\n>;\n\n/**\n * Displays information about a generic graph resource.\n */\nexport class ComResourceMicrosoftGraphComponent implements IComResourceMicrosoftGraphComponent {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Component**.\n   */\n  readonly type = 'Component';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * Must be **graph.microsoft.com/resource**.\n   */\n  readonly name = 'graph.microsoft.com/resource';\n  /**\n   * The properties of the resource.\n   */\n  properties?: IResourceProperties;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(options: ComResourceMicrosoftGraphComponentOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(\n    options: Omit<IComResourceMicrosoftGraphComponent, 'type' | 'name'>,\n  ): ComResourceMicrosoftGraphComponent {\n    return new ComResourceMicrosoftGraphComponent(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withHorizontalAlignment(horizontalAlignment: HorizontalAlignment): this {\n    this.horizontalAlignment = horizontalAlignment;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withProperties(properties: IResourceProperties): this {\n    this.properties = properties;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * Represents the properties of a resource component.\n */\nexport interface IResourceProperties {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The Id of the resource.\n   */\n  id?: string;\n  /**\n   * The reference to the resource.\n   */\n  resourceReference?: Record<string, string>;\n  /**\n   * The visualization of the resource.\n   */\n  resourceVisualization?: IResourceVisualization;\n}\n\nexport type ResourcePropertiesOptions = Partial<IResourceProperties>;\n\n/**\n * Represents the properties of a resource component.\n */\nexport class ResourceProperties implements IResourceProperties {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The Id of the resource.\n   */\n  id?: string;\n  /**\n   * The reference to the resource.\n   */\n  resourceReference?: Record<string, string>;\n  /**\n   * The visualization of the resource.\n   */\n  resourceVisualization?: IResourceVisualization;\n\n  constructor(options: ResourcePropertiesOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: IResourceProperties): ResourceProperties {\n    return new ResourceProperties(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withResourceReference(resourceReference: Record<string, string>): this {\n    this.resourceReference = resourceReference;\n    return this;\n  }\n\n  withResourceVisualization(\n    resourceVisualization: IResourceVisualization,\n  ): this {\n    this.resourceVisualization = resourceVisualization;\n    return this;\n  }\n}\n\n/**\n * Represents a visualization of a resource.\n */\nexport interface IResourceVisualization {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The media associated with the resource.\n   */\n  media?: string;\n}\n\nexport type ResourceVisualizationOptions = Partial<IResourceVisualization>;\n\n/**\n * Represents a visualization of a resource.\n */\nexport class ResourceVisualization implements IResourceVisualization {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The media associated with the resource.\n   */\n  media?: string;\n\n  constructor(options: ResourceVisualizationOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: IResourceVisualization): ResourceVisualization {\n    return new ResourceVisualization(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withMedia(media: string): this {\n    this.media = media;\n    return this;\n  }\n}\n\n/**\n * Displays information about a file resource.\n */\nexport interface IComFileMicrosoftGraphComponent {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Component**.\n   */\n  readonly type: 'Component';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * Must be **graph.microsoft.com/file**.\n   */\n  readonly name: 'graph.microsoft.com/file';\n  /**\n   * The properties of the file.\n   */\n  properties?: IFileProperties;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IComFileMicrosoftGraphComponent.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of ComFileMicrosoftGraphComponent, false otherwise.\n */\nexport function isComFileMicrosoftGraphComponent(\n  value: unknown,\n): value is IComFileMicrosoftGraphComponent {\n  const obj = value as IComFileMicrosoftGraphComponent;\n  return (\n    typeof obj === 'object' &&\n    obj.type === 'Component' &&\n    obj.name === 'graph.microsoft.com/file'\n  );\n}\n\nexport type ComFileMicrosoftGraphComponentOptions = Partial<\n  Omit<IComFileMicrosoftGraphComponent, 'type' | 'name'>\n>;\n\n/**\n * Displays information about a file resource.\n */\nexport class ComFileMicrosoftGraphComponent implements IComFileMicrosoftGraphComponent {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Component**.\n   */\n  readonly type = 'Component';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * Must be **graph.microsoft.com/file**.\n   */\n  readonly name = 'graph.microsoft.com/file';\n  /**\n   * The properties of the file.\n   */\n  properties?: IFileProperties;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(options: ComFileMicrosoftGraphComponentOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(\n    options: Omit<IComFileMicrosoftGraphComponent, 'type' | 'name'>,\n  ): ComFileMicrosoftGraphComponent {\n    return new ComFileMicrosoftGraphComponent(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withHorizontalAlignment(horizontalAlignment: HorizontalAlignment): this {\n    this.horizontalAlignment = horizontalAlignment;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withProperties(properties: IFileProperties): this {\n    this.properties = properties;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * Represents the properties of a file component.\n */\nexport interface IFileProperties {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The name of the file.\n   */\n  name?: string;\n  /**\n   * The file extension.\n   */\n  extension?: string;\n  /**\n   * The URL of the file.\n   */\n  url?: string;\n}\n\nexport type FilePropertiesOptions = Partial<IFileProperties>;\n\n/**\n * Represents the properties of a file component.\n */\nexport class FileProperties implements IFileProperties {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The name of the file.\n   */\n  name?: string;\n  /**\n   * The file extension.\n   */\n  extension?: string;\n  /**\n   * The URL of the file.\n   */\n  url?: string;\n\n  constructor(options: FilePropertiesOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: IFileProperties): FileProperties {\n    return new FileProperties(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withName(name: string): this {\n    this.name = name;\n    return this;\n  }\n\n  withExtension(extension: string): this {\n    this.extension = extension;\n    return this;\n  }\n\n  withUrl(url: string): this {\n    this.url = url;\n    return this;\n  }\n}\n\n/**\n * Displays information about a calendar event.\n */\nexport interface IComEventMicrosoftGraphComponent {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Component**.\n   */\n  readonly type: 'Component';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * Must be **graph.microsoft.com/event**.\n   */\n  readonly name: 'graph.microsoft.com/event';\n  /**\n   * The properties of the event.\n   */\n  properties?: ICalendarEventProperties;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IComEventMicrosoftGraphComponent.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of ComEventMicrosoftGraphComponent, false otherwise.\n */\nexport function isComEventMicrosoftGraphComponent(\n  value: unknown,\n): value is IComEventMicrosoftGraphComponent {\n  const obj = value as IComEventMicrosoftGraphComponent;\n  return (\n    typeof obj === 'object' &&\n    obj.type === 'Component' &&\n    obj.name === 'graph.microsoft.com/event'\n  );\n}\n\nexport type ComEventMicrosoftGraphComponentOptions = Partial<\n  Omit<IComEventMicrosoftGraphComponent, 'type' | 'name'>\n>;\n\n/**\n * Displays information about a calendar event.\n */\nexport class ComEventMicrosoftGraphComponent implements IComEventMicrosoftGraphComponent {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **Component**.\n   */\n  readonly type = 'Component';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * Must be **graph.microsoft.com/event**.\n   */\n  readonly name = 'graph.microsoft.com/event';\n  /**\n   * The properties of the event.\n   */\n  properties?: ICalendarEventProperties;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(options: ComEventMicrosoftGraphComponentOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(\n    options: Omit<IComEventMicrosoftGraphComponent, 'type' | 'name'>,\n  ): ComEventMicrosoftGraphComponent {\n    return new ComEventMicrosoftGraphComponent(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withHorizontalAlignment(horizontalAlignment: HorizontalAlignment): this {\n    this.horizontalAlignment = horizontalAlignment;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withProperties(properties: ICalendarEventProperties): this {\n    this.properties = properties;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * The properties of a calendar event.\n */\nexport interface ICalendarEventProperties {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The ID of the event.\n   */\n  id?: string;\n  /**\n   * The title of the event.\n   */\n  title?: string;\n  /**\n   * The start date and time of the event.\n   */\n  start?: string;\n  /**\n   * The end date and time of the event.\n   */\n  end?: string;\n  /**\n   * The status of the event.\n   */\n  status?: string;\n  /**\n   * The locations of the event.\n   */\n  locations?: string[];\n  /**\n   * The URL of the online meeting.\n   */\n  onlineMeetingUrl?: string;\n  /**\n   * Indicates if the event is all day.\n   */\n  isAllDay?: boolean;\n  /**\n   * The extension of the event.\n   */\n  extension?: string;\n  /**\n   * The URL of the event.\n   */\n  url?: string;\n  /**\n   * The attendees of the event.\n   */\n  attendees?: ICalendarEventAttendee[];\n  /**\n   * The organizer of the event.\n   */\n  organizer?: ICalendarEventAttendee;\n}\n\nexport type CalendarEventPropertiesOptions = Partial<ICalendarEventProperties>;\n\n/**\n * The properties of a calendar event.\n */\nexport class CalendarEventProperties implements ICalendarEventProperties {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The ID of the event.\n   */\n  id?: string;\n  /**\n   * The title of the event.\n   */\n  title?: string;\n  /**\n   * The start date and time of the event.\n   */\n  start?: string;\n  /**\n   * The end date and time of the event.\n   */\n  end?: string;\n  /**\n   * The status of the event.\n   */\n  status?: string;\n  /**\n   * The locations of the event.\n   */\n  locations?: string[];\n  /**\n   * The URL of the online meeting.\n   */\n  onlineMeetingUrl?: string;\n  /**\n   * Indicates if the event is all day.\n   */\n  isAllDay?: boolean;\n  /**\n   * The extension of the event.\n   */\n  extension?: string;\n  /**\n   * The URL of the event.\n   */\n  url?: string;\n  /**\n   * The attendees of the event.\n   */\n  attendees?: ICalendarEventAttendee[];\n  /**\n   * The organizer of the event.\n   */\n  organizer?: ICalendarEventAttendee;\n\n  constructor(options: CalendarEventPropertiesOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: ICalendarEventProperties): CalendarEventProperties {\n    return new CalendarEventProperties(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withTitle(title: string): this {\n    this.title = title;\n    return this;\n  }\n\n  withStart(start: string): this {\n    this.start = start;\n    return this;\n  }\n\n  withEnd(end: string): this {\n    this.end = end;\n    return this;\n  }\n\n  withStatus(status: string): this {\n    this.status = status;\n    return this;\n  }\n\n  withLocations(...locations: string[]): this {\n    this.locations = locations;\n    return this;\n  }\n\n  withOnlineMeetingUrl(onlineMeetingUrl: string): this {\n    this.onlineMeetingUrl = onlineMeetingUrl;\n    return this;\n  }\n\n  withIsAllDay(isAllDay: boolean): this {\n    this.isAllDay = isAllDay;\n    return this;\n  }\n\n  withExtension(extension: string): this {\n    this.extension = extension;\n    return this;\n  }\n\n  withUrl(url: string): this {\n    this.url = url;\n    return this;\n  }\n\n  withAttendees(...attendees: ICalendarEventAttendee[]): this {\n    this.attendees = attendees;\n    return this;\n  }\n\n  withOrganizer(organizer: ICalendarEventAttendee): this {\n    this.organizer = organizer;\n    return this;\n  }\n}\n\n/**\n * Represents a calendar event attendee.\n */\nexport interface ICalendarEventAttendee {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The name of the attendee.\n   */\n  name?: string;\n  /**\n   * The email address of the attendee.\n   */\n  email?: string;\n  /**\n   * The title of the attendee.\n   */\n  title?: string;\n  /**\n   * The type of the attendee.\n   */\n  type?: string;\n  /**\n   * The status of the attendee.\n   */\n  status?: string;\n}\n\nexport type CalendarEventAttendeeOptions = Partial<ICalendarEventAttendee>;\n\n/**\n * Represents a calendar event attendee.\n */\nexport class CalendarEventAttendee implements ICalendarEventAttendee {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The name of the attendee.\n   */\n  name?: string;\n  /**\n   * The email address of the attendee.\n   */\n  email?: string;\n  /**\n   * The title of the attendee.\n   */\n  title?: string;\n  /**\n   * The type of the attendee.\n   */\n  type?: string;\n  /**\n   * The status of the attendee.\n   */\n  status?: string;\n\n  constructor(options: CalendarEventAttendeeOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: ICalendarEventAttendee): CalendarEventAttendee {\n    return new CalendarEventAttendee(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withName(name: string): this {\n    this.name = name;\n    return this;\n  }\n\n  withEmail(email: string): this {\n    this.email = email;\n    return this;\n  }\n\n  withTitle(title: string): this {\n    this.title = title;\n    return this;\n  }\n\n  withType(type: string): this {\n    this.type = type;\n    return this;\n  }\n\n  withStatus(status: string): this {\n    this.status = status;\n    return this;\n  }\n}\n\n/**\n * A page inside a Carousel element.\n */\nexport interface ICarouselPage {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **CarouselPage**.\n   */\n  readonly type: 'CarouselPage';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * An Action that will be invoked when the element is tapped or clicked. Action.ShowCard is not supported.\n   */\n  selectAction?:\n    | IExecuteAction\n    | IInsertImageAction\n    | IOpenUrlAction\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction\n    | ISubmitAction\n    | IToggleVisibilityAction;\n  /**\n   * The style of the container. Container styles control the colors of the background, border and text inside the container, in such a way that contrast requirements are always met.\n   */\n  style?: ContainerStyle;\n  /**\n   * Controls if a border should be displayed around the container.\n   */\n  showBorder?: boolean;\n  /**\n   * Controls if the container should have rounded corners.\n   */\n  roundedCorners?: boolean;\n  /**\n   * The layouts associated with the container. The container can dynamically switch from one layout to another as the card's width changes. See [Container layouts](https://adaptivecards.microsoft.com/?topic=container-layouts) for more details.\n   */\n  layouts?: (IStackLayout | IFlowLayout | IAreaGridLayout)[];\n  /**\n   * The minimum height, in pixels, of the container, in the `<number>px` format.\n   */\n  minHeight?: string;\n  /**\n   * Defines the container's background image.\n   */\n  backgroundImage?: string | IBackgroundImage;\n  /**\n   * Controls how the container's content should be vertically aligned.\n   */\n  verticalContentAlignment?: VerticalAlignment;\n  /**\n   * Controls if the content of the card is to be rendered left-to-right or right-to-left.\n   */\n  rtl?: boolean;\n  /**\n   * The maximum height, in pixels, of the container, in the `<number>px` format. When the content of a container exceeds the container's maximum height, a vertical scrollbar is displayed.\n   */\n  maxHeight?: string;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n  /**\n   * The elements in the page.\n   */\n  items: CardElementArray;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type ICarouselPage.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of CarouselPage, false otherwise.\n */\nexport function isCarouselPage(value: unknown): value is ICarouselPage {\n  const obj = value as ICarouselPage;\n  return typeof obj === 'object' && obj.type === 'CarouselPage';\n}\n\nexport type CarouselPageOptions = Partial<\n  Omit<ICarouselPage, 'type' | 'items'>\n>;\n\n/**\n * A page inside a Carousel element.\n */\nexport class CarouselPage implements ICarouselPage {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **CarouselPage**.\n   */\n  readonly type = 'CarouselPage';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * An Action that will be invoked when the element is tapped or clicked. Action.ShowCard is not supported.\n   */\n  selectAction?:\n    | IExecuteAction\n    | IInsertImageAction\n    | IOpenUrlAction\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction\n    | ISubmitAction\n    | IToggleVisibilityAction;\n  /**\n   * The style of the container. Container styles control the colors of the background, border and text inside the container, in such a way that contrast requirements are always met.\n   */\n  style?: ContainerStyle;\n  /**\n   * Controls if a border should be displayed around the container.\n   */\n  showBorder?: boolean = false;\n  /**\n   * Controls if the container should have rounded corners.\n   */\n  roundedCorners?: boolean = false;\n  /**\n   * The layouts associated with the container. The container can dynamically switch from one layout to another as the card's width changes. See [Container layouts](https://adaptivecards.microsoft.com/?topic=container-layouts) for more details.\n   */\n  layouts?: (IStackLayout | IFlowLayout | IAreaGridLayout)[];\n  /**\n   * The minimum height, in pixels, of the container, in the `<number>px` format.\n   */\n  minHeight?: string;\n  /**\n   * Defines the container's background image.\n   */\n  backgroundImage?: string | IBackgroundImage;\n  /**\n   * Controls how the container's content should be vertically aligned.\n   */\n  verticalContentAlignment?: VerticalAlignment;\n  /**\n   * Controls if the content of the card is to be rendered left-to-right or right-to-left.\n   */\n  rtl?: boolean;\n  /**\n   * The maximum height, in pixels, of the container, in the `<number>px` format. When the content of a container exceeds the container's maximum height, a vertical scrollbar is displayed.\n   */\n  maxHeight?: string;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n  /**\n   * The elements in the page.\n   */\n  items: CardElementArray;\n\n  constructor(...items: CardElementArray) {\n    this.items = items;\n  }\n\n  withOptions(value: CarouselPageOptions): this {\n    Object.assign(this, value);\n    return this;\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withSelectAction(\n    selectAction:\n      | IExecuteAction\n      | IInsertImageAction\n      | IOpenUrlAction\n      | IOpenUrlDialogAction\n      | IPopoverAction\n      | IResetInputsAction\n      | ISubmitAction\n      | IToggleVisibilityAction,\n  ): this {\n    this.selectAction = selectAction;\n    return this;\n  }\n\n  withStyle(style: ContainerStyle): this {\n    this.style = style;\n    return this;\n  }\n\n  withShowBorder(showBorder = true): this {\n    this.showBorder = showBorder;\n    return this;\n  }\n\n  withRoundedCorners(roundedCorners = true): this {\n    this.roundedCorners = roundedCorners;\n    return this;\n  }\n\n  withLayouts(\n    ...layouts: (IStackLayout | IFlowLayout | IAreaGridLayout)[]\n  ): this {\n    this.layouts = layouts;\n    return this;\n  }\n\n  withMinHeight(minHeight: string): this {\n    this.minHeight = minHeight;\n    return this;\n  }\n\n  withBackgroundImage(backgroundImage: string | IBackgroundImage): this {\n    this.backgroundImage = backgroundImage;\n    return this;\n  }\n\n  withVerticalContentAlignment(\n    verticalContentAlignment: VerticalAlignment,\n  ): this {\n    this.verticalContentAlignment = verticalContentAlignment;\n    return this;\n  }\n\n  withRtl(rtl: boolean): this {\n    this.rtl = rtl;\n    return this;\n  }\n\n  withMaxHeight(maxHeight: string): this {\n    this.maxHeight = maxHeight;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n\n  withItems(...items: CardElementArray): this {\n    this.items = items;\n    return this;\n  }\n}\n\n/**\n * Represents a row of cells in a table.\n */\nexport interface ITableRow {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **TableRow**.\n   */\n  readonly type: 'TableRow';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * Controls if a border should be displayed around the container.\n   */\n  showBorder?: boolean;\n  /**\n   * Controls if the container should have rounded corners.\n   */\n  roundedCorners?: boolean;\n  /**\n   * The style of the container. Container styles control the colors of the background, border and text inside the container, in such a way that contrast requirements are always met.\n   */\n  style?: ContainerStyle;\n  /**\n   * Controls how the content of every cell in the row should be horizontally aligned by default. This property overrides the horizontalCellContentAlignment property of the table and columns.\n   */\n  horizontalCellContentAlignment?: HorizontalAlignment;\n  /**\n   * Controls how the content of every cell in the row should be vertically aligned by default. This property overrides the verticalCellContentAlignment property of the table and columns.\n   */\n  verticalCellContentAlignment?: VerticalAlignment;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n  /**\n   * The cells in the row.\n   */\n  cells?: TableCellArray;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type ITableRow.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of TableRow, false otherwise.\n */\nexport function isTableRow(value: unknown): value is ITableRow {\n  const obj = value as ITableRow;\n  return typeof obj === 'object' && obj.type === 'TableRow';\n}\n\nexport type TableRowOptions = Partial<Omit<ITableRow, 'type'>>;\n\n/**\n * Represents a row of cells in a table.\n */\nexport class TableRow implements ITableRow {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **TableRow**.\n   */\n  readonly type = 'TableRow';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * Controls if a border should be displayed around the container.\n   */\n  showBorder?: boolean = false;\n  /**\n   * Controls if the container should have rounded corners.\n   */\n  roundedCorners?: boolean = false;\n  /**\n   * The style of the container. Container styles control the colors of the background, border and text inside the container, in such a way that contrast requirements are always met.\n   */\n  style?: ContainerStyle;\n  /**\n   * Controls how the content of every cell in the row should be horizontally aligned by default. This property overrides the horizontalCellContentAlignment property of the table and columns.\n   */\n  horizontalCellContentAlignment?: HorizontalAlignment;\n  /**\n   * Controls how the content of every cell in the row should be vertically aligned by default. This property overrides the verticalCellContentAlignment property of the table and columns.\n   */\n  verticalCellContentAlignment?: VerticalAlignment;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n  /**\n   * The cells in the row.\n   */\n  cells?: TableCellArray;\n\n  constructor(options: TableRowOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<ITableRow, 'type'>): TableRow {\n    return new TableRow(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withHorizontalAlignment(horizontalAlignment: HorizontalAlignment): this {\n    this.horizontalAlignment = horizontalAlignment;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withShowBorder(showBorder = true): this {\n    this.showBorder = showBorder;\n    return this;\n  }\n\n  withRoundedCorners(roundedCorners = true): this {\n    this.roundedCorners = roundedCorners;\n    return this;\n  }\n\n  withStyle(style: ContainerStyle): this {\n    this.style = style;\n    return this;\n  }\n\n  withHorizontalCellContentAlignment(\n    horizontalCellContentAlignment: HorizontalAlignment,\n  ): this {\n    this.horizontalCellContentAlignment = horizontalCellContentAlignment;\n    return this;\n  }\n\n  withVerticalCellContentAlignment(\n    verticalCellContentAlignment: VerticalAlignment,\n  ): this {\n    this.verticalCellContentAlignment = verticalCellContentAlignment;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n\n  withCells(...cells: TableCellArray): this {\n    this.cells = cells;\n    return this;\n  }\n}\n\n/**\n * Represents a cell in a table row.\n */\nexport interface ITableCell {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **TableCell**.\n   */\n  readonly type: 'TableCell';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * An Action that will be invoked when the element is tapped or clicked. Action.ShowCard is not supported.\n   */\n  selectAction?:\n    | IExecuteAction\n    | IInsertImageAction\n    | IOpenUrlAction\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction\n    | ISubmitAction\n    | IToggleVisibilityAction;\n  /**\n   * The style of the container. Container styles control the colors of the background, border and text inside the container, in such a way that contrast requirements are always met.\n   */\n  style?: ContainerStyle;\n  /**\n   * The layouts associated with the container. The container can dynamically switch from one layout to another as the card's width changes. See [Container layouts](https://adaptivecards.microsoft.com/?topic=container-layouts) for more details.\n   */\n  layouts?: (IStackLayout | IFlowLayout | IAreaGridLayout)[];\n  /**\n   * Controls if the container should bleed into its parent. A bleeding container extends into its parent's padding.\n   */\n  bleed?: boolean;\n  /**\n   * The minimum height, in pixels, of the container, in the `<number>px` format.\n   */\n  minHeight?: string;\n  /**\n   * Defines the container's background image.\n   */\n  backgroundImage?: string | IBackgroundImage;\n  /**\n   * Controls how the container's content should be vertically aligned.\n   */\n  verticalContentAlignment?: VerticalAlignment;\n  /**\n   * Controls if the content of the card is to be rendered left-to-right or right-to-left.\n   */\n  rtl?: boolean;\n  /**\n   * The maximum height, in pixels, of the container, in the `<number>px` format. When the content of a container exceeds the container's maximum height, a vertical scrollbar is displayed.\n   */\n  maxHeight?: string;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n  /**\n   * The items (elements) in the cell.\n   */\n  items: CardElementArray;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type ITableCell.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of TableCell, false otherwise.\n */\nexport function isTableCell(value: unknown): value is ITableCell {\n  const obj = value as ITableCell;\n  return typeof obj === 'object' && obj.type === 'TableCell';\n}\n\nexport type TableCellOptions = Partial<Omit<ITableCell, 'type' | 'items'>>;\n\n/**\n * Represents a cell in a table row.\n */\nexport class TableCell implements ITableCell {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **TableCell**.\n   */\n  readonly type = 'TableCell';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * An Action that will be invoked when the element is tapped or clicked. Action.ShowCard is not supported.\n   */\n  selectAction?:\n    | IExecuteAction\n    | IInsertImageAction\n    | IOpenUrlAction\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction\n    | ISubmitAction\n    | IToggleVisibilityAction;\n  /**\n   * The style of the container. Container styles control the colors of the background, border and text inside the container, in such a way that contrast requirements are always met.\n   */\n  style?: ContainerStyle;\n  /**\n   * The layouts associated with the container. The container can dynamically switch from one layout to another as the card's width changes. See [Container layouts](https://adaptivecards.microsoft.com/?topic=container-layouts) for more details.\n   */\n  layouts?: (IStackLayout | IFlowLayout | IAreaGridLayout)[];\n  /**\n   * Controls if the container should bleed into its parent. A bleeding container extends into its parent's padding.\n   */\n  bleed?: boolean = false;\n  /**\n   * The minimum height, in pixels, of the container, in the `<number>px` format.\n   */\n  minHeight?: string;\n  /**\n   * Defines the container's background image.\n   */\n  backgroundImage?: string | IBackgroundImage;\n  /**\n   * Controls how the container's content should be vertically aligned.\n   */\n  verticalContentAlignment?: VerticalAlignment;\n  /**\n   * Controls if the content of the card is to be rendered left-to-right or right-to-left.\n   */\n  rtl?: boolean;\n  /**\n   * The maximum height, in pixels, of the container, in the `<number>px` format. When the content of a container exceeds the container's maximum height, a vertical scrollbar is displayed.\n   */\n  maxHeight?: string;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n  /**\n   * The items (elements) in the cell.\n   */\n  items: CardElementArray;\n\n  constructor(...items: CardElementArray) {\n    this.items = items;\n  }\n\n  withOptions(value: TableCellOptions): this {\n    Object.assign(this, value);\n    return this;\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withSelectAction(\n    selectAction:\n      | IExecuteAction\n      | IInsertImageAction\n      | IOpenUrlAction\n      | IOpenUrlDialogAction\n      | IPopoverAction\n      | IResetInputsAction\n      | ISubmitAction\n      | IToggleVisibilityAction,\n  ): this {\n    this.selectAction = selectAction;\n    return this;\n  }\n\n  withStyle(style: ContainerStyle): this {\n    this.style = style;\n    return this;\n  }\n\n  withLayouts(\n    ...layouts: (IStackLayout | IFlowLayout | IAreaGridLayout)[]\n  ): this {\n    this.layouts = layouts;\n    return this;\n  }\n\n  withBleed(bleed = true): this {\n    this.bleed = bleed;\n    return this;\n  }\n\n  withMinHeight(minHeight: string): this {\n    this.minHeight = minHeight;\n    return this;\n  }\n\n  withBackgroundImage(backgroundImage: string | IBackgroundImage): this {\n    this.backgroundImage = backgroundImage;\n    return this;\n  }\n\n  withVerticalContentAlignment(\n    verticalContentAlignment: VerticalAlignment,\n  ): this {\n    this.verticalContentAlignment = verticalContentAlignment;\n    return this;\n  }\n\n  withRtl(rtl: boolean): this {\n    this.rtl = rtl;\n    return this;\n  }\n\n  withMaxHeight(maxHeight: string): this {\n    this.maxHeight = maxHeight;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n\n  withItems(...items: CardElementArray): this {\n    this.items = items;\n    return this;\n  }\n}\n\n/**\n * A block of text inside a RichTextBlock element.\n */\nexport interface ITextRun {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **TextRun**.\n   */\n  readonly type: 'TextRun';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * The text to display. A subset of markdown is supported.\n   */\n  text: string;\n  /**\n   * The size of the text.\n   */\n  size?: TextSize;\n  /**\n   * The weight of the text.\n   */\n  weight?: TextWeight;\n  /**\n   * The color of the text.\n   */\n  color?: TextColor;\n  /**\n   * Controls whether the text should be renderer using a subtler variant of the select color.\n   */\n  isSubtle?: boolean;\n  /**\n   * The type of font to use for rendering.\n   */\n  fontType?: FontType;\n  /**\n   * Controls if the text should be italicized.\n   */\n  italic?: boolean;\n  /**\n   * Controls if the text should be struck through.\n   */\n  strikethrough?: boolean;\n  /**\n   * Controls if the text should be highlighted.\n   */\n  highlight?: boolean;\n  /**\n   * Controls if the text should be underlined.\n   */\n  underline?: boolean;\n  /**\n   * An Action that will be invoked when the text is tapped or clicked. Action.ShowCard is not supported.\n   */\n  selectAction?:\n    | IExecuteAction\n    | IInsertImageAction\n    | IOpenUrlAction\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction\n    | ISubmitAction\n    | IToggleVisibilityAction;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type ITextRun.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of TextRun, false otherwise.\n */\nexport function isTextRun(value: unknown): value is ITextRun {\n  const obj = value as ITextRun;\n  return typeof obj === 'object' && obj.type === 'TextRun';\n}\n\nexport type TextRunOptions = Partial<Omit<ITextRun, 'type' | 'text'>>;\n\n/**\n * A block of text inside a RichTextBlock element.\n */\nexport class TextRun implements ITextRun {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **TextRun**.\n   */\n  readonly type = 'TextRun';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * The text to display. A subset of markdown is supported.\n   */\n  text: string;\n  /**\n   * The size of the text.\n   */\n  size?: TextSize;\n  /**\n   * The weight of the text.\n   */\n  weight?: TextWeight;\n  /**\n   * The color of the text.\n   */\n  color?: TextColor;\n  /**\n   * Controls whether the text should be renderer using a subtler variant of the select color.\n   */\n  isSubtle?: boolean;\n  /**\n   * The type of font to use for rendering.\n   */\n  fontType?: FontType;\n  /**\n   * Controls if the text should be italicized.\n   */\n  italic?: boolean = false;\n  /**\n   * Controls if the text should be struck through.\n   */\n  strikethrough?: boolean = false;\n  /**\n   * Controls if the text should be highlighted.\n   */\n  highlight?: boolean = false;\n  /**\n   * Controls if the text should be underlined.\n   */\n  underline?: boolean = false;\n  /**\n   * An Action that will be invoked when the text is tapped or clicked. Action.ShowCard is not supported.\n   */\n  selectAction?:\n    | IExecuteAction\n    | IInsertImageAction\n    | IOpenUrlAction\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction\n    | ISubmitAction\n    | IToggleVisibilityAction;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(text: string, options: TextRunOptions = {}) {\n    Object.assign(this, options);\n    this.text = text;\n  }\n\n  static from(options: Omit<ITextRun, 'type'>): TextRun {\n    return new TextRun(options.text, options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withText(text: string): this {\n    this.text = text;\n    return this;\n  }\n\n  withSize(size: TextSize): this {\n    this.size = size;\n    return this;\n  }\n\n  withWeight(weight: TextWeight): this {\n    this.weight = weight;\n    return this;\n  }\n\n  withColor(color: TextColor): this {\n    this.color = color;\n    return this;\n  }\n\n  withIsSubtle(isSubtle: boolean): this {\n    this.isSubtle = isSubtle;\n    return this;\n  }\n\n  withFontType(fontType: FontType): this {\n    this.fontType = fontType;\n    return this;\n  }\n\n  withItalic(italic = true): this {\n    this.italic = italic;\n    return this;\n  }\n\n  withStrikethrough(strikethrough = true): this {\n    this.strikethrough = strikethrough;\n    return this;\n  }\n\n  withHighlight(highlight = true): this {\n    this.highlight = highlight;\n    return this;\n  }\n\n  withUnderline(underline = true): this {\n    this.underline = underline;\n    return this;\n  }\n\n  withSelectAction(\n    selectAction:\n      | IExecuteAction\n      | IInsertImageAction\n      | IOpenUrlAction\n      | IOpenUrlDialogAction\n      | IPopoverAction\n      | IResetInputsAction\n      | ISubmitAction\n      | IToggleVisibilityAction,\n  ): this {\n    this.selectAction = selectAction;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * An inline icon inside a RichTextBlock element.\n */\nexport interface IIconRun {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **IconRun**.\n   */\n  readonly type: 'IconRun';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * The name of the inline icon to display.\n   */\n  name?: string;\n  /**\n   * The size of the inline icon.\n   */\n  size?: 'Small' | 'Default' | 'Medium' | 'Large' | 'ExtraLarge';\n  /**\n   * The style of the inline icon.\n   */\n  style?: IconStyle;\n  /**\n   * The color of the inline icon.\n   */\n  color?: TextColor;\n  /**\n   * An Action that will be invoked when the inline icon is tapped or clicked. Action.ShowCard is not supported.\n   */\n  selectAction?:\n    | IExecuteAction\n    | IInsertImageAction\n    | IOpenUrlAction\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction\n    | ISubmitAction\n    | IToggleVisibilityAction;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IIconRun.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of IconRun, false otherwise.\n */\nexport function isIconRun(value: unknown): value is IIconRun {\n  const obj = value as IIconRun;\n  return typeof obj === 'object' && obj.type === 'IconRun';\n}\n\nexport type IconRunOptions = Partial<Omit<IIconRun, 'type'>>;\n\n/**\n * An inline icon inside a RichTextBlock element.\n */\nexport class IconRun implements IIconRun {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **IconRun**.\n   */\n  readonly type = 'IconRun';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * The name of the inline icon to display.\n   */\n  name?: string;\n  /**\n   * The size of the inline icon.\n   */\n  size?: 'Small' | 'Default' | 'Medium' | 'Large' | 'ExtraLarge' = 'Default';\n  /**\n   * The style of the inline icon.\n   */\n  style?: IconStyle = 'Regular';\n  /**\n   * The color of the inline icon.\n   */\n  color?: TextColor = 'Default';\n  /**\n   * An Action that will be invoked when the inline icon is tapped or clicked. Action.ShowCard is not supported.\n   */\n  selectAction?:\n    | IExecuteAction\n    | IInsertImageAction\n    | IOpenUrlAction\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction\n    | ISubmitAction\n    | IToggleVisibilityAction;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(options: IconRunOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<IIconRun, 'type'>): IconRun {\n    return new IconRun(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withName(name: string): this {\n    this.name = name;\n    return this;\n  }\n\n  withSize(\n    size: 'Small' | 'Default' | 'Medium' | 'Large' | 'ExtraLarge',\n  ): this {\n    this.size = size;\n    return this;\n  }\n\n  withStyle(style: IconStyle): this {\n    this.style = style;\n    return this;\n  }\n\n  withColor(color: TextColor): this {\n    this.color = color;\n    return this;\n  }\n\n  withSelectAction(\n    selectAction:\n      | IExecuteAction\n      | IInsertImageAction\n      | IOpenUrlAction\n      | IOpenUrlDialogAction\n      | IPopoverAction\n      | IResetInputsAction\n      | ISubmitAction\n      | IToggleVisibilityAction,\n  ): this {\n    this.selectAction = selectAction;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * An inline image inside a RichTextBlock element.\n */\nexport interface IImageRun {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **ImageRun**.\n   */\n  readonly type: 'ImageRun';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * The URL (or Base64-encoded Data URI) of the image. Acceptable formats are PNG, JPEG, GIF and SVG.\n   */\n  url?: string;\n  /**\n   * The size of the inline image.\n   */\n  size?: 'Small' | 'Default' | 'Medium' | 'Large' | 'ExtraLarge';\n  /**\n   * The style of the inline image.\n   */\n  style?: ImageStyle;\n  /**\n   * An Action that will be invoked when the image is tapped or clicked. Action.ShowCard is not supported.\n   */\n  selectAction?:\n    | IExecuteAction\n    | IInsertImageAction\n    | IOpenUrlAction\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction\n    | ISubmitAction\n    | IToggleVisibilityAction;\n  /**\n   * A set of theme-specific image URLs.\n   */\n  themedUrls?: IThemedUrl[];\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IImageRun.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of ImageRun, false otherwise.\n */\nexport function isImageRun(value: unknown): value is IImageRun {\n  const obj = value as IImageRun;\n  return typeof obj === 'object' && obj.type === 'ImageRun';\n}\n\nexport type ImageRunOptions = Partial<Omit<IImageRun, 'type'>>;\n\n/**\n * An inline image inside a RichTextBlock element.\n */\nexport class ImageRun implements IImageRun {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **ImageRun**.\n   */\n  readonly type = 'ImageRun';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * The URL (or Base64-encoded Data URI) of the image. Acceptable formats are PNG, JPEG, GIF and SVG.\n   */\n  url?: string;\n  /**\n   * The size of the inline image.\n   */\n  size?: 'Small' | 'Default' | 'Medium' | 'Large' | 'ExtraLarge' = 'Default';\n  /**\n   * The style of the inline image.\n   */\n  style?: ImageStyle = 'Default';\n  /**\n   * An Action that will be invoked when the image is tapped or clicked. Action.ShowCard is not supported.\n   */\n  selectAction?:\n    | IExecuteAction\n    | IInsertImageAction\n    | IOpenUrlAction\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction\n    | ISubmitAction\n    | IToggleVisibilityAction;\n  /**\n   * A set of theme-specific image URLs.\n   */\n  themedUrls?: IThemedUrl[];\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n\n  constructor(options: ImageRunOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<IImageRun, 'type'>): ImageRun {\n    return new ImageRun(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withUrl(url: string): this {\n    this.url = url;\n    return this;\n  }\n\n  withSize(\n    size: 'Small' | 'Default' | 'Medium' | 'Large' | 'ExtraLarge',\n  ): this {\n    this.size = size;\n    return this;\n  }\n\n  withStyle(style: ImageStyle): this {\n    this.style = style;\n    return this;\n  }\n\n  withSelectAction(\n    selectAction:\n      | IExecuteAction\n      | IInsertImageAction\n      | IOpenUrlAction\n      | IOpenUrlDialogAction\n      | IPopoverAction\n      | IResetInputsAction\n      | ISubmitAction\n      | IToggleVisibilityAction,\n  ): this {\n    this.selectAction = selectAction;\n    return this;\n  }\n\n  withThemedUrls(...themedUrls: IThemedUrl[]): this {\n    this.themedUrls = themedUrls;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n}\n\n/**\n * A column in a ColumnSet element.\n */\nexport interface IColumn {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Optional. If specified, must be **Column**.\n   */\n  readonly type: 'Column';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities;\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight;\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing;\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean;\n  /**\n   * An Action that will be invoked when the element is tapped or clicked. Action.ShowCard is not supported.\n   */\n  selectAction?:\n    | IExecuteAction\n    | IInsertImageAction\n    | IOpenUrlAction\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction\n    | ISubmitAction\n    | IToggleVisibilityAction;\n  /**\n   * The style of the container. Container styles control the colors of the background, border and text inside the container, in such a way that contrast requirements are always met.\n   */\n  style?: ContainerStyle;\n  /**\n   * Controls if a border should be displayed around the container.\n   */\n  showBorder?: boolean;\n  /**\n   * Controls if the container should have rounded corners.\n   */\n  roundedCorners?: boolean;\n  /**\n   * The layouts associated with the container. The container can dynamically switch from one layout to another as the card's width changes. See [Container layouts](https://adaptivecards.microsoft.com/?topic=container-layouts) for more details.\n   */\n  layouts?: (IStackLayout | IFlowLayout | IAreaGridLayout)[];\n  /**\n   * Controls if the container should bleed into its parent. A bleeding container extends into its parent's padding.\n   */\n  bleed?: boolean;\n  /**\n   * The minimum height, in pixels, of the container, in the `<number>px` format.\n   */\n  minHeight?: string;\n  /**\n   * Defines the container's background image.\n   */\n  backgroundImage?: string | IBackgroundImage;\n  /**\n   * Controls how the container's content should be vertically aligned.\n   */\n  verticalContentAlignment?: VerticalAlignment;\n  /**\n   * Controls if the content of the card is to be rendered left-to-right or right-to-left.\n   */\n  rtl?: boolean;\n  /**\n   * The maximum height, in pixels, of the container, in the `<number>px` format. When the content of a container exceeds the container's maximum height, a vertical scrollbar is displayed.\n   */\n  maxHeight?: string;\n  /**\n   * The width of the column. If expressed as a number, represents the relative weight of the column in the set. If expressed as a string, `auto` will automatically adjust the column's width according to its content, `stretch` will make the column use the remaining horizontal space (shared with other columns with width set to `stretch`) and using the `<number>px` format will give the column an explicit width in pixels.\n   */\n  width?: 'auto' | 'stretch' | string | number;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n  /**\n   * The elements in the column.\n   */\n  items: CardElementArray;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IColumn.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of Column, false otherwise.\n */\nexport function isColumn(value: unknown): value is IColumn {\n  const obj = value as IColumn;\n  return typeof obj === 'object' && obj.type === 'Column';\n}\n\nexport type ColumnOptions = Partial<Omit<IColumn, 'type' | 'items'>>;\n\n/**\n * A column in a ColumnSet element.\n */\nexport class Column implements IColumn {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Optional. If specified, must be **Column**.\n   */\n  readonly type = 'Column';\n  /**\n   * A unique identifier for the element or action. Input elements must have an id, otherwise they will not be validated and their values will not be sent to the Bot.\n   */\n  id?: string;\n  /**\n   * A list of capabilities the element requires the host application to support. If the host application doesn't support at least one of the listed capabilities, the element is not rendered (or its fallback is rendered if provided).\n   */\n  requires?: IHostCapabilities = {};\n  /**\n   * The locale associated with the element.\n   */\n  lang?: string;\n  /**\n   * Controls the visibility of the element.\n   */\n  isVisible?: boolean = true;\n  /**\n   * Controls whether a separator line should be displayed above the element to visually separate it from the previous element. No separator will be displayed for the first element in a container, even if this property is set to true.\n   */\n  separator?: boolean = false;\n  /**\n   * The height of the element. When set to stretch, the element will use the remaining vertical space in its container.\n   */\n  height?: ElementHeight = 'auto';\n  /**\n   * Controls how the element should be horizontally aligned.\n   */\n  horizontalAlignment?: HorizontalAlignment;\n  /**\n   * Controls the amount of space between this element and the previous one. No space will be added for the first element in a container.\n   */\n  spacing?: Spacing = 'Default';\n  /**\n   * Controls for which card width the element should be displayed. If targetWidth isn't specified, the element is rendered at all card widths. Using targetWidth makes it possible to author responsive cards that adapt their layout to the available horizontal space. For more details, see [Responsive layout](https://adaptivecards.microsoft.com/?topic=responsive-layout).\n   */\n  targetWidth?: TargetWidth;\n  /**\n   * Controls whether the element should be used as a sort key by elements that allow sorting across a collection of elements.\n   */\n  isSortKey?: boolean = false;\n  /**\n   * An Action that will be invoked when the element is tapped or clicked. Action.ShowCard is not supported.\n   */\n  selectAction?:\n    | IExecuteAction\n    | IInsertImageAction\n    | IOpenUrlAction\n    | IOpenUrlDialogAction\n    | IPopoverAction\n    | IResetInputsAction\n    | ISubmitAction\n    | IToggleVisibilityAction;\n  /**\n   * The style of the container. Container styles control the colors of the background, border and text inside the container, in such a way that contrast requirements are always met.\n   */\n  style?: ContainerStyle;\n  /**\n   * Controls if a border should be displayed around the container.\n   */\n  showBorder?: boolean = false;\n  /**\n   * Controls if the container should have rounded corners.\n   */\n  roundedCorners?: boolean = false;\n  /**\n   * The layouts associated with the container. The container can dynamically switch from one layout to another as the card's width changes. See [Container layouts](https://adaptivecards.microsoft.com/?topic=container-layouts) for more details.\n   */\n  layouts?: (IStackLayout | IFlowLayout | IAreaGridLayout)[];\n  /**\n   * Controls if the container should bleed into its parent. A bleeding container extends into its parent's padding.\n   */\n  bleed?: boolean = false;\n  /**\n   * The minimum height, in pixels, of the container, in the `<number>px` format.\n   */\n  minHeight?: string;\n  /**\n   * Defines the container's background image.\n   */\n  backgroundImage?: string | IBackgroundImage;\n  /**\n   * Controls how the container's content should be vertically aligned.\n   */\n  verticalContentAlignment?: VerticalAlignment;\n  /**\n   * Controls if the content of the card is to be rendered left-to-right or right-to-left.\n   */\n  rtl?: boolean;\n  /**\n   * The maximum height, in pixels, of the container, in the `<number>px` format. When the content of a container exceeds the container's maximum height, a vertical scrollbar is displayed.\n   */\n  maxHeight?: string;\n  /**\n   * The width of the column. If expressed as a number, represents the relative weight of the column in the set. If expressed as a string, `auto` will automatically adjust the column's width according to its content, `stretch` will make the column use the remaining horizontal space (shared with other columns with width set to `stretch`) and using the `<number>px` format will give the column an explicit width in pixels.\n   */\n  width?: 'auto' | 'stretch' | string | number;\n  /**\n   * The area of a Layout.AreaGrid layout in which an element should be displayed.\n   */\n  'grid.area'?: string;\n  /**\n   * An alternate element to render if the type of this one is unsupported or if the host application doesn't support all the capabilities specified in the requires property.\n   */\n  fallback?: FallbackElement;\n  /**\n   * The elements in the column.\n   */\n  items: CardElementArray;\n\n  constructor(...items: CardElementArray) {\n    this.items = items;\n  }\n\n  withOptions(value: ColumnOptions): this {\n    Object.assign(this, value);\n    return this;\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withRequires(requires: IHostCapabilities): this {\n    this.requires = requires;\n    return this;\n  }\n\n  withLang(lang: string): this {\n    this.lang = lang;\n    return this;\n  }\n\n  withIsVisible(isVisible = false): this {\n    this.isVisible = isVisible;\n    return this;\n  }\n\n  withSeparator(separator = true): this {\n    this.separator = separator;\n    return this;\n  }\n\n  withHeight(height: ElementHeight): this {\n    this.height = height;\n    return this;\n  }\n\n  withHorizontalAlignment(horizontalAlignment: HorizontalAlignment): this {\n    this.horizontalAlignment = horizontalAlignment;\n    return this;\n  }\n\n  withSpacing(spacing: Spacing): this {\n    this.spacing = spacing;\n    return this;\n  }\n\n  withTargetWidth(targetWidth: TargetWidth): this {\n    this.targetWidth = targetWidth;\n    return this;\n  }\n\n  withIsSortKey(isSortKey = true): this {\n    this.isSortKey = isSortKey;\n    return this;\n  }\n\n  withSelectAction(\n    selectAction:\n      | IExecuteAction\n      | IInsertImageAction\n      | IOpenUrlAction\n      | IOpenUrlDialogAction\n      | IPopoverAction\n      | IResetInputsAction\n      | ISubmitAction\n      | IToggleVisibilityAction,\n  ): this {\n    this.selectAction = selectAction;\n    return this;\n  }\n\n  withStyle(style: ContainerStyle): this {\n    this.style = style;\n    return this;\n  }\n\n  withShowBorder(showBorder = true): this {\n    this.showBorder = showBorder;\n    return this;\n  }\n\n  withRoundedCorners(roundedCorners = true): this {\n    this.roundedCorners = roundedCorners;\n    return this;\n  }\n\n  withLayouts(\n    ...layouts: (IStackLayout | IFlowLayout | IAreaGridLayout)[]\n  ): this {\n    this.layouts = layouts;\n    return this;\n  }\n\n  withBleed(bleed = true): this {\n    this.bleed = bleed;\n    return this;\n  }\n\n  withMinHeight(minHeight: string): this {\n    this.minHeight = minHeight;\n    return this;\n  }\n\n  withBackgroundImage(backgroundImage: string | IBackgroundImage): this {\n    this.backgroundImage = backgroundImage;\n    return this;\n  }\n\n  withVerticalContentAlignment(\n    verticalContentAlignment: VerticalAlignment,\n  ): this {\n    this.verticalContentAlignment = verticalContentAlignment;\n    return this;\n  }\n\n  withRtl(rtl: boolean): this {\n    this.rtl = rtl;\n    return this;\n  }\n\n  withMaxHeight(maxHeight: string): this {\n    this.maxHeight = maxHeight;\n    return this;\n  }\n\n  withWidth(width: 'auto' | 'stretch' | string | number): this {\n    this.width = width;\n    return this;\n  }\n\n  withFallback(fallback: FallbackElement): this {\n    this.fallback = fallback;\n    return this;\n  }\n\n  withItems(...items: CardElementArray): this {\n    this.items = items;\n    return this;\n  }\n}\n\n/**\n * Represents the data of an Action.Submit.\n */\nexport interface ISubmitActionData extends Record<string, any> {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  /**\n   * Defines the optional Teams-specific portion of the action's data.\n   */\n}\n\nexport type SubmitActionDataOptions = Partial<ISubmitActionData>;\n\n/**\n * Represents the data of an Action.Submit.\n */\nexport class SubmitActionData implements ISubmitActionData {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  /**\n   * Defines the optional Teams-specific portion of the action's data.\n   */\n\n  constructor(options: SubmitActionDataOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: ISubmitActionData): SubmitActionData {\n    return new SubmitActionData(options);\n  }\n  [key: string]: any;\n}\n\n/**\n * Represents Teams-specific data in an Action.Submit to send an Instant Message back to the Bot.\n */\nexport interface IImBackSubmitActionData {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **imBack**.\n   */\n  readonly type: 'imBack';\n  /**\n   * The value that will be sent to the Bot.\n   */\n  value: string;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IImBackSubmitActionData.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of ImBackSubmitActionData, false otherwise.\n */\nexport function isImBackSubmitActionData(\n  value: unknown,\n): value is IImBackSubmitActionData {\n  const obj = value as IImBackSubmitActionData;\n  return typeof obj === 'object' && obj.type === 'imBack';\n}\n\nexport type ImBackSubmitActionDataOptions = Partial<\n  Omit<IImBackSubmitActionData, 'type' | 'value'>\n>;\n\n/**\n * Represents Teams-specific data in an Action.Submit to send an Instant Message back to the Bot.\n */\nexport class ImBackSubmitActionData implements IImBackSubmitActionData {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **imBack**.\n   */\n  readonly type = 'imBack';\n  /**\n   * The value that will be sent to the Bot.\n   */\n  value: string;\n\n  constructor(value: string, options: ImBackSubmitActionDataOptions = {}) {\n    Object.assign(this, options);\n    this.value = value;\n  }\n\n  static from(\n    options: Omit<IImBackSubmitActionData, 'type'>,\n  ): ImBackSubmitActionData {\n    return new ImBackSubmitActionData(options.value, options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withValue(value: string): this {\n    this.value = value;\n    return this;\n  }\n}\n\n/**\n * Represents Teams-specific data in an Action.Submit to make an Invoke request to the Bot.\n */\nexport interface IInvokeSubmitActionData {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **invoke**.\n   */\n  readonly type: 'invoke';\n  /**\n   * The object to send to the Bot with the Invoke request. Can be strongly typed as one of the below values to trigger a specific action in Teams.\n   */\n  value: any | ICollabStageInvokeDataValue;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IInvokeSubmitActionData.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of InvokeSubmitActionData, false otherwise.\n */\nexport function isInvokeSubmitActionData(\n  value: unknown,\n): value is IInvokeSubmitActionData {\n  const obj = value as IInvokeSubmitActionData;\n  return typeof obj === 'object' && obj.type === 'invoke';\n}\n\nexport type InvokeSubmitActionDataOptions = Partial<\n  Omit<IInvokeSubmitActionData, 'type' | 'value'>\n>;\n\n/**\n * Represents Teams-specific data in an Action.Submit to make an Invoke request to the Bot.\n */\nexport class InvokeSubmitActionData implements IInvokeSubmitActionData {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **invoke**.\n   */\n  readonly type = 'invoke';\n  /**\n   * The object to send to the Bot with the Invoke request. Can be strongly typed as one of the below values to trigger a specific action in Teams.\n   */\n  value: any | ICollabStageInvokeDataValue;\n\n  constructor(\n    value?: any | ICollabStageInvokeDataValue,\n    options: InvokeSubmitActionDataOptions = {},\n  ) {\n    Object.assign(this, options);\n    this.value = value;\n  }\n\n  static from(\n    options: Omit<IInvokeSubmitActionData, 'type'>,\n  ): InvokeSubmitActionData {\n    return new InvokeSubmitActionData(options.value, options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withValue(value: any | ICollabStageInvokeDataValue): this {\n    this.value = value;\n    return this;\n  }\n}\n\n/**\n * Data for invoking a collaboration stage action.\n */\nexport interface ICollabStageInvokeDataValue {\n  /**\n   * Must be **tab/tabInfoAction**.\n   */\n  readonly type: 'tab/tabInfoAction';\n  /**\n   * Provides information about the iFrame content, rendered in the collab stage popout window.\n   */\n  tabInfo?: ITabInfo;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type ICollabStageInvokeDataValue.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of CollabStageInvokeDataValue, false otherwise.\n */\nexport function isCollabStageInvokeDataValue(\n  value: unknown,\n): value is ICollabStageInvokeDataValue {\n  const obj = value as ICollabStageInvokeDataValue;\n  return typeof obj === 'object' && obj.type === 'tab/tabInfoAction';\n}\n\nexport type CollabStageInvokeDataValueOptions = Partial<\n  Omit<ICollabStageInvokeDataValue, 'type'>\n>;\n\n/**\n * Data for invoking a collaboration stage action.\n */\nexport class CollabStageInvokeDataValue implements ICollabStageInvokeDataValue {\n  /**\n   * Must be **tab/tabInfoAction**.\n   */\n  readonly type = 'tab/tabInfoAction';\n  /**\n   * Provides information about the iFrame content, rendered in the collab stage popout window.\n   */\n  tabInfo?: ITabInfo;\n\n  constructor(options: CollabStageInvokeDataValueOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(\n    options: Omit<ICollabStageInvokeDataValue, 'type'>,\n  ): CollabStageInvokeDataValue {\n    return new CollabStageInvokeDataValue(options);\n  }\n\n  withTabInfo(tabInfo: ITabInfo): this {\n    this.tabInfo = tabInfo;\n    return this;\n  }\n}\n\n/**\n * Represents information about the iFrame content, rendered in the collab stage popout window.\n */\nexport interface ITabInfo {\n  /**\n   * The name for the content. This will be displayed as the title of the window hosting the iFrame.\n   */\n  name?: string;\n  /**\n   * The URL to open in an iFrame.\n   */\n  contentUrl?: string;\n  /**\n   * The unique entity id for this content (e.g., random UUID).\n   */\n  entityId?: string;\n  /**\n   * An optional website URL to the content, allowing users to open this content in the browser (if they prefer).\n   */\n  websiteUrl?: string;\n}\n\nexport type TabInfoOptions = Partial<ITabInfo>;\n\n/**\n * Represents information about the iFrame content, rendered in the collab stage popout window.\n */\nexport class TabInfo implements ITabInfo {\n  /**\n   * The name for the content. This will be displayed as the title of the window hosting the iFrame.\n   */\n  name?: string;\n  /**\n   * The URL to open in an iFrame.\n   */\n  contentUrl?: string;\n  /**\n   * The unique entity id for this content (e.g., random UUID).\n   */\n  entityId?: string;\n  /**\n   * An optional website URL to the content, allowing users to open this content in the browser (if they prefer).\n   */\n  websiteUrl?: string;\n\n  constructor(options: TabInfoOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: ITabInfo): TabInfo {\n    return new TabInfo(options);\n  }\n\n  withName(name: string): this {\n    this.name = name;\n    return this;\n  }\n\n  withContentUrl(contentUrl: string): this {\n    this.contentUrl = contentUrl;\n    return this;\n  }\n\n  withEntityId(entityId: string): this {\n    this.entityId = entityId;\n    return this;\n  }\n\n  withWebsiteUrl(websiteUrl: string): this {\n    this.websiteUrl = websiteUrl;\n    return this;\n  }\n}\n\n/**\n * Represents Teams-specific data in an Action.Submit to send a message back to the Bot.\n */\nexport interface IMessageBackSubmitActionData {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **messageBack**.\n   */\n  readonly type: 'messageBack';\n  /**\n   * The text that will be sent to the Bot.\n   */\n  text?: string;\n  /**\n   * The optional text that will be displayed as a new message in the conversation, as if the end-user sent it. `displayText` is not sent to the Bot.\n   */\n  displayText?: string;\n  /**\n   * Optional additional value that will be sent to the Bot. For instance, `value` can encode specific context for the action, such as unique identifiers or a JSON object.\n   */\n  value?: any;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IMessageBackSubmitActionData.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of MessageBackSubmitActionData, false otherwise.\n */\nexport function isMessageBackSubmitActionData(\n  value: unknown,\n): value is IMessageBackSubmitActionData {\n  const obj = value as IMessageBackSubmitActionData;\n  return typeof obj === 'object' && obj.type === 'messageBack';\n}\n\nexport type MessageBackSubmitActionDataOptions = Partial<\n  Omit<IMessageBackSubmitActionData, 'type'>\n>;\n\n/**\n * Represents Teams-specific data in an Action.Submit to send a message back to the Bot.\n */\nexport class MessageBackSubmitActionData implements IMessageBackSubmitActionData {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **messageBack**.\n   */\n  readonly type = 'messageBack';\n  /**\n   * The text that will be sent to the Bot.\n   */\n  text?: string;\n  /**\n   * The optional text that will be displayed as a new message in the conversation, as if the end-user sent it. `displayText` is not sent to the Bot.\n   */\n  displayText?: string;\n  /**\n   * Optional additional value that will be sent to the Bot. For instance, `value` can encode specific context for the action, such as unique identifiers or a JSON object.\n   */\n  value?: any;\n\n  constructor(options: MessageBackSubmitActionDataOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(\n    options: Omit<IMessageBackSubmitActionData, 'type'>,\n  ): MessageBackSubmitActionData {\n    return new MessageBackSubmitActionData(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withText(text: string): this {\n    this.text = text;\n    return this;\n  }\n\n  withDisplayText(displayText: string): this {\n    this.displayText = displayText;\n    return this;\n  }\n\n  withValue(value: any): this {\n    this.value = value;\n    return this;\n  }\n}\n\n/**\n * Represents Teams-specific data in an Action.Submit to sign in a user.\n */\nexport interface ISigninSubmitActionData {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **signin**.\n   */\n  readonly type: 'signin';\n  /**\n   * The URL to redirect the end-user for signing in.\n   */\n  value: string;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type ISigninSubmitActionData.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of SigninSubmitActionData, false otherwise.\n */\nexport function isSigninSubmitActionData(\n  value: unknown,\n): value is ISigninSubmitActionData {\n  const obj = value as ISigninSubmitActionData;\n  return typeof obj === 'object' && obj.type === 'signin';\n}\n\nexport type SigninSubmitActionDataOptions = Partial<\n  Omit<ISigninSubmitActionData, 'type' | 'value'>\n>;\n\n/**\n * Represents Teams-specific data in an Action.Submit to sign in a user.\n */\nexport class SigninSubmitActionData implements ISigninSubmitActionData {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **signin**.\n   */\n  readonly type = 'signin';\n  /**\n   * The URL to redirect the end-user for signing in.\n   */\n  value: string;\n\n  constructor(value: string, options: SigninSubmitActionDataOptions = {}) {\n    Object.assign(this, options);\n    this.value = value;\n  }\n\n  static from(\n    options: Omit<ISigninSubmitActionData, 'type'>,\n  ): SigninSubmitActionData {\n    return new SigninSubmitActionData(options.value, options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withValue(value: string): this {\n    this.value = value;\n    return this;\n  }\n}\n\n/**\n * Represents Teams-specific data in an Action.Submit to open a task module.\n */\nexport interface ITaskFetchSubmitActionData {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **task/fetch**.\n   */\n  readonly type: 'task/fetch';\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type ITaskFetchSubmitActionData.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of TaskFetchSubmitActionData, false otherwise.\n */\nexport function isTaskFetchSubmitActionData(\n  value: unknown,\n): value is ITaskFetchSubmitActionData {\n  const obj = value as ITaskFetchSubmitActionData;\n  return typeof obj === 'object' && obj.type === 'task/fetch';\n}\n\nexport type TaskFetchSubmitActionDataOptions = Partial<\n  Omit<ITaskFetchSubmitActionData, 'type'>\n>;\n\n/**\n * Represents Teams-specific data in an Action.Submit to open a task module.\n */\nexport class TaskFetchSubmitActionData implements ITaskFetchSubmitActionData {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **task/fetch**.\n   */\n  readonly type = 'task/fetch';\n\n  constructor(options: TaskFetchSubmitActionDataOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(\n    options: Omit<ITaskFetchSubmitActionData, 'type'>,\n  ): TaskFetchSubmitActionData {\n    return new TaskFetchSubmitActionData(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n}\n\n/**\n * Teams-specific properties associated with the action.\n */\nexport interface ITeamsSubmitActionProperties {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Defines how feedback is provided to the end-user when the action is executed.\n   */\n  feedback?: ITeamsSubmitActionFeedback;\n}\n\nexport type TeamsSubmitActionPropertiesOptions =\n  Partial<ITeamsSubmitActionProperties>;\n\n/**\n * Teams-specific properties associated with the action.\n */\nexport class TeamsSubmitActionProperties implements ITeamsSubmitActionProperties {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Defines how feedback is provided to the end-user when the action is executed.\n   */\n  feedback?: ITeamsSubmitActionFeedback;\n\n  constructor(options: TeamsSubmitActionPropertiesOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(\n    options: ITeamsSubmitActionProperties,\n  ): TeamsSubmitActionProperties {\n    return new TeamsSubmitActionProperties(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withFeedback(feedback: ITeamsSubmitActionFeedback): this {\n    this.feedback = feedback;\n    return this;\n  }\n}\n\n/**\n * Represents feedback options for an [Action.Submit](https://adaptivecards.microsoft.com/?topic=Action.Submit).\n */\nexport interface ITeamsSubmitActionFeedback {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Defines if a feedback message should be displayed after the action is executed.\n   */\n  hide?: boolean;\n}\n\nexport type TeamsSubmitActionFeedbackOptions =\n  Partial<ITeamsSubmitActionFeedback>;\n\n/**\n * Represents feedback options for an [Action.Submit](https://adaptivecards.microsoft.com/?topic=Action.Submit).\n */\nexport class TeamsSubmitActionFeedback implements ITeamsSubmitActionFeedback {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Defines if a feedback message should be displayed after the action is executed.\n   */\n  hide?: boolean;\n\n  constructor(options: TeamsSubmitActionFeedbackOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: ITeamsSubmitActionFeedback): TeamsSubmitActionFeedback {\n    return new TeamsSubmitActionFeedback(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withHide(hide: boolean): this {\n    this.hide = hide;\n    return this;\n  }\n}\n\n/**\n * Defines how a card can be refreshed by making a request to the target Bot.\n */\nexport interface IRefreshDefinition {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The Action.Execute action to invoke to refresh the card.\n   */\n  action?: IExecuteAction;\n  /**\n   * The list of user Ids for which the card will be automatically refreshed. In Teams, in chats or channels with more than 60 users, the card will automatically refresh only for users specified in the userIds list. Other users will have to manually click on a \"refresh\" button. In contexts with fewer than 60 users, the card will automatically refresh for all users.\n   */\n  userIds?: string[];\n}\n\nexport type RefreshDefinitionOptions = Partial<IRefreshDefinition>;\n\n/**\n * Defines how a card can be refreshed by making a request to the target Bot.\n */\nexport class RefreshDefinition implements IRefreshDefinition {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The Action.Execute action to invoke to refresh the card.\n   */\n  action?: IExecuteAction;\n  /**\n   * The list of user Ids for which the card will be automatically refreshed. In Teams, in chats or channels with more than 60 users, the card will automatically refresh only for users specified in the userIds list. Other users will have to manually click on a \"refresh\" button. In contexts with fewer than 60 users, the card will automatically refresh for all users.\n   */\n  userIds?: string[];\n\n  constructor(options: RefreshDefinitionOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: IRefreshDefinition): RefreshDefinition {\n    return new RefreshDefinition(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withAction(action: IExecuteAction): this {\n    this.action = action;\n    return this;\n  }\n\n  withUserIds(...userIds: string[]): this {\n    this.userIds = userIds;\n    return this;\n  }\n}\n\n/**\n * Defines authentication information associated with a card. For more information, refer to the [Bot Framework OAuthCard type](https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.oauthcard)\n */\nexport interface IAuthentication {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The text that can be displayed to the end user when prompting them to authenticate.\n   */\n  text?: string;\n  /**\n   * The identifier for registered OAuth connection setting information.\n   */\n  connectionName?: string;\n  /**\n   * The buttons that should be displayed to the user when prompting for authentication. The array MUST contain one button of type “signin”. Other button types are not currently supported.\n   */\n  buttons?: IAuthCardButton[];\n  /**\n   * Provides information required to enable on-behalf-of single sign-on user authentication.\n   */\n  tokenExchangeResource?: ITokenExchangeResource;\n}\n\nexport type AuthenticationOptions = Partial<IAuthentication>;\n\n/**\n * Defines authentication information associated with a card. For more information, refer to the [Bot Framework OAuthCard type](https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.oauthcard)\n */\nexport class Authentication implements IAuthentication {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The text that can be displayed to the end user when prompting them to authenticate.\n   */\n  text?: string;\n  /**\n   * The identifier for registered OAuth connection setting information.\n   */\n  connectionName?: string;\n  /**\n   * The buttons that should be displayed to the user when prompting for authentication. The array MUST contain one button of type “signin”. Other button types are not currently supported.\n   */\n  buttons?: IAuthCardButton[];\n  /**\n   * Provides information required to enable on-behalf-of single sign-on user authentication.\n   */\n  tokenExchangeResource?: ITokenExchangeResource;\n\n  constructor(options: AuthenticationOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: IAuthentication): Authentication {\n    return new Authentication(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withText(text: string): this {\n    this.text = text;\n    return this;\n  }\n\n  withConnectionName(connectionName: string): this {\n    this.connectionName = connectionName;\n    return this;\n  }\n\n  withButtons(...buttons: IAuthCardButton[]): this {\n    this.buttons = buttons;\n    return this;\n  }\n\n  withTokenExchangeResource(\n    tokenExchangeResource: ITokenExchangeResource,\n  ): this {\n    this.tokenExchangeResource = tokenExchangeResource;\n    return this;\n  }\n}\n\n/**\n * Defines a button as displayed when prompting a user to authenticate. For more information, refer to the [Bot Framework CardAction type](https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.cardaction).\n */\nexport interface IAuthCardButton {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **signin**.\n   */\n  type?: string;\n  /**\n   * The caption of the button.\n   */\n  title?: string;\n  /**\n   * A URL to an image to display alongside the button’s caption.\n   */\n  image?: string;\n  /**\n   * The value associated with the button. The meaning of value depends on the button’s type.\n   */\n  value?: string;\n}\n\nexport type AuthCardButtonOptions = Partial<IAuthCardButton>;\n\n/**\n * Defines a button as displayed when prompting a user to authenticate. For more information, refer to the [Bot Framework CardAction type](https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.cardaction).\n */\nexport class AuthCardButton implements IAuthCardButton {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **signin**.\n   */\n  type?: string;\n  /**\n   * The caption of the button.\n   */\n  title?: string;\n  /**\n   * A URL to an image to display alongside the button’s caption.\n   */\n  image?: string;\n  /**\n   * The value associated with the button. The meaning of value depends on the button’s type.\n   */\n  value?: string;\n\n  constructor(options: AuthCardButtonOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: IAuthCardButton): AuthCardButton {\n    return new AuthCardButton(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withType(type: string): this {\n    this.type = type;\n    return this;\n  }\n\n  withTitle(title: string): this {\n    this.title = title;\n    return this;\n  }\n\n  withImage(image: string): this {\n    this.image = image;\n    return this;\n  }\n\n  withValue(value: string): this {\n    this.value = value;\n    return this;\n  }\n}\n\n/**\n * Defines information required to enable on-behalf-of single sign-on user authentication. For more information, refer to the [Bot Framework TokenExchangeResource type](https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.tokenexchangeresource)\n */\nexport interface ITokenExchangeResource {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The unique identified of this token exchange instance.\n   */\n  id?: string;\n  /**\n   * An application ID or resource identifier with which to exchange a token on behalf of. This property is identity provider- and application-specific.\n   */\n  uri?: string;\n  /**\n   * An identifier for the identity provider with which to attempt a token exchange.\n   */\n  providerId?: string;\n}\n\nexport type TokenExchangeResourceOptions = Partial<ITokenExchangeResource>;\n\n/**\n * Defines information required to enable on-behalf-of single sign-on user authentication. For more information, refer to the [Bot Framework TokenExchangeResource type](https://docs.microsoft.com/dotnet/api/microsoft.bot.schema.tokenexchangeresource)\n */\nexport class TokenExchangeResource implements ITokenExchangeResource {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The unique identified of this token exchange instance.\n   */\n  id?: string;\n  /**\n   * An application ID or resource identifier with which to exchange a token on behalf of. This property is identity provider- and application-specific.\n   */\n  uri?: string;\n  /**\n   * An identifier for the identity provider with which to attempt a token exchange.\n   */\n  providerId?: string;\n\n  constructor(options: TokenExchangeResourceOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: ITokenExchangeResource): TokenExchangeResource {\n    return new TokenExchangeResource(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withUri(uri: string): this {\n    this.uri = uri;\n    return this;\n  }\n\n  withProviderId(providerId: string): this {\n    this.providerId = providerId;\n    return this;\n  }\n}\n\n/**\n * Represents a set of Teams-specific properties on a card.\n */\nexport interface ITeamsCardProperties {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Controls the width of the card in a Teams chat.\n   *\n   * Note that setting `width` to \"full\" will not actually stretch the card to the \"full width\" of the chat pane. It will only make the card wider than when the `width` property isn't set.\n   */\n  width?: TeamsCardWidth;\n  /**\n   * The Teams-specific entities associated with the card.\n   */\n  entities?: IMention[];\n}\n\nexport type TeamsCardPropertiesOptions = Partial<ITeamsCardProperties>;\n\n/**\n * Represents a set of Teams-specific properties on a card.\n */\nexport class TeamsCardProperties implements ITeamsCardProperties {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Controls the width of the card in a Teams chat.\n   *\n   * Note that setting `width` to \"full\" will not actually stretch the card to the \"full width\" of the chat pane. It will only make the card wider than when the `width` property isn't set.\n   */\n  width?: TeamsCardWidth;\n  /**\n   * The Teams-specific entities associated with the card.\n   */\n  entities?: IMention[];\n\n  constructor(options: TeamsCardPropertiesOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: ITeamsCardProperties): TeamsCardProperties {\n    return new TeamsCardProperties(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withWidth(width: TeamsCardWidth): this {\n    this.width = width;\n    return this;\n  }\n\n  withEntities(...entities: IMention[]): this {\n    this.entities = entities;\n    return this;\n  }\n}\n\n/**\n * Represents a mention to a person.\n */\nexport interface IMention {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **mention**.\n   */\n  readonly type: 'mention';\n  /**\n   * The text that will be substituted with the mention.\n   */\n  text?: string;\n  /**\n   * Defines the entity being mentioned.\n   */\n  mentioned?: IMentionedEntity;\n}\n\n/**\n * @hidden\n * @internal\n *\n * Type guard to check if a value is of type IMention.\n *\n * @param value The value to check.\n * @returns True if the value is an instance of Mention, false otherwise.\n */\nexport function isMention(value: unknown): value is IMention {\n  const obj = value as IMention;\n  return typeof obj === 'object' && obj.type === 'mention';\n}\n\nexport type MentionOptions = Partial<Omit<IMention, 'type'>>;\n\n/**\n * Represents a mention to a person.\n */\nexport class Mention implements IMention {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * Must be **mention**.\n   */\n  readonly type = 'mention';\n  /**\n   * The text that will be substituted with the mention.\n   */\n  text?: string;\n  /**\n   * Defines the entity being mentioned.\n   */\n  mentioned?: IMentionedEntity;\n\n  constructor(options: MentionOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: Omit<IMention, 'type'>): Mention {\n    return new Mention(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withText(text: string): this {\n    this.text = text;\n    return this;\n  }\n\n  withMentioned(mentioned: IMentionedEntity): this {\n    this.mentioned = mentioned;\n    return this;\n  }\n}\n\n/**\n * Represents a mentioned person or tag.\n */\nexport interface IMentionedEntity {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The Id of a person (typically a Microsoft Entra user Id) or tag.\n   */\n  id?: string;\n  /**\n   * The name of the mentioned entity.\n   */\n  name?: string;\n  /**\n   * The type of the mentioned entity.\n   */\n  mentionType?: MentionType;\n}\n\nexport type MentionedEntityOptions = Partial<IMentionedEntity>;\n\n/**\n * Represents a mentioned person or tag.\n */\nexport class MentionedEntity implements IMentionedEntity {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The Id of a person (typically a Microsoft Entra user Id) or tag.\n   */\n  id?: string;\n  /**\n   * The name of the mentioned entity.\n   */\n  name?: string;\n  /**\n   * The type of the mentioned entity.\n   */\n  mentionType?: MentionType = 'Person';\n\n  constructor(options: MentionedEntityOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: IMentionedEntity): MentionedEntity {\n    return new MentionedEntity(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withId(id: string): this {\n    this.id = id;\n    return this;\n  }\n\n  withName(name: string): this {\n    this.name = name;\n    return this;\n  }\n\n  withMentionType(mentionType: MentionType): this {\n    this.mentionType = mentionType;\n    return this;\n  }\n}\n\n/**\n * Card-level metadata.\n */\nexport interface ICardMetadata {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The URL the card originates from. When `webUrl` is set, the card is dubbed an **Adaptive Card-based Loop Component** and, when pasted in Teams or other Loop Component-capable host applications, the URL will unfurl to the same exact card.\n   */\n  webUrl?: string;\n}\n\nexport type CardMetadataOptions = Partial<ICardMetadata>;\n\n/**\n * Card-level metadata.\n */\nexport class CardMetadata implements ICardMetadata {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The URL the card originates from. When `webUrl` is set, the card is dubbed an **Adaptive Card-based Loop Component** and, when pasted in Teams or other Loop Component-capable host applications, the URL will unfurl to the same exact card.\n   */\n  webUrl?: string;\n\n  constructor(options: CardMetadataOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: ICardMetadata): CardMetadata {\n    return new CardMetadata(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withWebUrl(webUrl: string): this {\n    this.webUrl = webUrl;\n    return this;\n  }\n}\n\n/**\n * The resources that can be used in the body of the card.\n */\nexport interface IResources {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * String resources that can provide translations in multiple languages. String resources make it possible to craft cards that are automatically localized according to the language settings of the application that displays the card.\n   */\n  strings?: Record<string, IStringResource>;\n}\n\nexport type ResourcesOptions = Partial<IResources>;\n\n/**\n * The resources that can be used in the body of the card.\n */\nexport class Resources implements IResources {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * String resources that can provide translations in multiple languages. String resources make it possible to craft cards that are automatically localized according to the language settings of the application that displays the card.\n   */\n  strings?: Record<string, IStringResource>;\n\n  constructor(options: ResourcesOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: IResources): Resources {\n    return new Resources(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withStrings(strings: Record<string, IStringResource>): this {\n    this.strings = strings;\n    return this;\n  }\n}\n\n/**\n * Defines the replacement string values.\n */\nexport interface IStringResource {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The default value of the string, which is used when no matching localized value is found.\n   */\n  defaultValue?: string;\n  /**\n   * Localized values of the string, where keys represent the locale (e.g. `en-US`) in the `<ISO 639-1>(-<ISO 3166-1 alpha-2>)` format. `<ISO 639-1>` is the 2-letter language code and `<ISO 3166-1 alpha-2>` is the optional 2-letter country code.\n   */\n  localizedValues?: Record<string, string>;\n}\n\nexport type StringResourceOptions = Partial<IStringResource>;\n\n/**\n * Defines the replacement string values.\n */\nexport class StringResource implements IStringResource {\n  /**\n   * Defines an optional key for the object. Keys are seldom needed, but in some scenarios, specifying keys can help maintain visual state in the host application.\n   */\n  key?: string;\n  /**\n   * The default value of the string, which is used when no matching localized value is found.\n   */\n  defaultValue?: string;\n  /**\n   * Localized values of the string, where keys represent the locale (e.g. `en-US`) in the `<ISO 639-1>(-<ISO 3166-1 alpha-2>)` format. `<ISO 639-1>` is the 2-letter language code and `<ISO 3166-1 alpha-2>` is the optional 2-letter country code.\n   */\n  localizedValues?: Record<string, string>;\n\n  constructor(options: StringResourceOptions = {}) {\n    Object.assign(this, options);\n  }\n\n  static from(options: IStringResource): StringResource {\n    return new StringResource(options);\n  }\n\n  withKey(key: string): this {\n    this.key = key;\n    return this;\n  }\n\n  withDefaultValue(defaultValue: string): this {\n    this.defaultValue = defaultValue;\n    return this;\n  }\n\n  withLocalizedValues(localizedValues: Record<string, string>): this {\n    this.localizedValues = localizedValues;\n    return this;\n  }\n}\n"]}