type TeamsButtonStyle = "danger" | "default" | "primary"; type TeamsTextStyle = "bold" | "muted" | "plain"; interface TeamsCardElement { children: TeamsCardChild[]; imageUrl?: string; subtitle?: string; title?: string; type: "card"; } type TeamsCardChild = TeamsActionsElement | TeamsDividerElement | TeamsFieldsElement | TeamsImageElement | TeamsLinkElement | TeamsSectionElement | TeamsTableElement | TeamsTextElement; interface TeamsTextElement { content: string; style?: TeamsTextStyle; type: "text"; } interface TeamsImageElement { alt?: string; type: "image"; url: string; } interface TeamsDividerElement { type: "divider"; } interface TeamsActionsElement { children: (TeamsButtonElement | TeamsLinkButtonElement | TeamsRadioSelectElement | TeamsSelectElement)[]; type: "actions"; } interface TeamsButtonElement { id: string; label: string; style?: TeamsButtonStyle; type: "button"; value?: string; } interface TeamsLinkButtonElement { label: string; style?: TeamsButtonStyle; type: "link-button"; url: string; } interface TeamsSelectOptionElement { label: string; value: string; } interface TeamsSelectElement { id: string; label: string; optional?: boolean; options: TeamsSelectOptionElement[]; placeholder?: string; type: "select"; } interface TeamsRadioSelectElement extends Omit { type: "radio_select"; } interface TeamsSectionElement { children: TeamsCardChild[]; type: "section"; } interface TeamsFieldsElement { children: TeamsFieldElement[]; type: "fields"; } interface TeamsFieldElement { label: string; value: string; } interface TeamsLinkElement { label: string; type: "link"; url: string; } interface TeamsTableElement { headers: string[]; rows: string[][]; type: "table"; } interface TeamsAdaptiveCard { $schema: string; actions?: unknown[]; body: unknown[]; type: "AdaptiveCard"; version: "1.4"; } export type { TeamsActionsElement as T, TeamsAdaptiveCard as a, TeamsButtonElement as b, TeamsButtonStyle as c, TeamsCardChild as d, TeamsCardElement as e, TeamsDividerElement as f, TeamsFieldElement as g, TeamsFieldsElement as h, TeamsImageElement as i, TeamsLinkButtonElement as j, TeamsLinkElement as k, TeamsRadioSelectElement as l, TeamsSectionElement as m, TeamsSelectElement as n, TeamsSelectOptionElement as o, TeamsTableElement as p, TeamsTextElement as q, TeamsTextStyle as r };