import { AppEnums } from "./Enums"; import { VersionedLayoutId, GuidValue } from "@omnia/fx-models"; export interface MicrosoftTeamGeneralProperties { visibility?: AppEnums.TeamPrivacyOptions; displayName?: string; description?: string; } export interface MicrosoftTeamCreationInformation extends MicrosoftTeamGeneralProperties { channels?: Channel[]; memberSettings?: MemberSettings; guestSettings?: GuestSettings; funSettings?: FunSettings; messagingSettings?: MessagingSettings; discoverySettings?: DiscoverySettings; installedApps?: InstalledApp[]; msTeamTemplateId?: string; templateSetupType: AppEnums.TemplateSetupTypes; } export interface MicrosoftTeamCloningProperties extends MicrosoftTeamGeneralProperties { partsToClone: string; mailNickName: string; } export interface MicrosoftTeamCloningInformation extends MicrosoftTeamCloningProperties { msTeamAppId: GuidValue; msTeamAppName?: string; } export interface Channel { displayName?: string; description?: string; isFavoriteByDefault?: boolean; tabs?: Tab[]; isGeneral?: boolean; } export declare enum TabCustomUrlType { Layout = 1 } export interface TabCustomUrlConfiguration { type: TabCustomUrlType; } export interface LayoutTabUrlConfiguration extends TabCustomUrlConfiguration { type: TabCustomUrlType.Layout; layoutId: VersionedLayoutId; isDefaultLayout: boolean; } export interface Tab { name?: string; teamAppType?: AppEnums.TeamAppsType; "teamsApp@odata.bind"?: string; configuration?: TeamsAppConfig; tabProvisionFeatureId?: GuidValue; customUrlConfiguration?: TabCustomUrlConfiguration; } export interface TeamsAppConfig { entityId?: string; contentUrl?: string; websiteUrl?: string; createPlannerBoard?: boolean; } export interface MemberSettings { allowCreateUpdateChannels?: boolean; allowDeleteChannels?: boolean; allowAddRemoveApps?: boolean; allowCreateUpdateRemoveTabs?: boolean; allowCreateUpdateRemoveConnectors?: boolean; allowCreatePrivateChannels?: boolean; } export interface GuestSettings { allowCreateUpdateChannels?: boolean; allowDeleteChannels?: boolean; } export interface FunSettings { allowGiphy?: boolean; giphyContentRating?: AppEnums.GiphyContentRatingType; allowStickersAndMemes?: boolean; allowCustomMemes?: boolean; } export interface MessagingSettings { allowUserEditMessages?: boolean; allowUserDeleteMessages?: boolean; allowOwnerDeleteMessages?: boolean; allowTeamMentions?: boolean; allowChannelMentions?: boolean; } export interface DiscoverySettings { showInTeamsSearchAndSuggestions?: boolean; } export interface InstalledApp { title?: string; "teamsApp@odata.bind"?: string; teamAppType?: AppEnums.TeamAppsType; configuration?: TeamsAppConfig; }