@microsoft/teams-js
Version:
Microsoft Client SDK for building app for Microsoft hosts
135 lines (134 loc) • 5.07 kB
TypeScript
/**
* @hidden
* @internal
* @beta
* @module
* Limited to Microsoft-internal use
*
* CRUD operations for tabs associated with apps
*/
import { TabInstance } from '../../public/interfaces';
import { AppTypes, HostEntityIds } from './hostEntity';
/**
* Represents information about a static tab instance
*/
export interface StaticTabInstance extends TabInstance {
tabType: 'StaticTab';
}
/**
* Represents information about a configurable tab instance
*/
export interface ConfigurableTabInstance extends TabInstance {
tabType: 'ConfigurableTab';
}
/**
* Represents information about a tab instance associated with a host entity like chat, channel or meeting. Cab be a configurable tab or static tab.
*/
export type HostEntityTabInstance = StaticTabInstance | ConfigurableTabInstance;
/**
* Represents all tabs associated with a host entity like chat, channel or meeting
*/
export interface HostEntityTabInstances {
allTabs: HostEntityTabInstance[];
}
/**
* @hidden
* @internal
* @beta
* Limited to Microsoft-internal use
*
* Launches host-owned UI that lets a user select an app, installs it if required,
* runs through app configuration if required, and then associates the app with the threadId provided
*
* @param hostEntityIds Ids of the host entity like channel, chat or meeting
*
* @param appTypes What type of applications to show the user. If EDU is passed as appType, only apps supported by EDU tenant are shown.
* If no value is passed, all apps are shown.
*
* @returns The HostEntityTabInstance of the newly associated app
*
* @throws Error if host does not support this capability, library as not been initialized successfully, input parameters are invalid, user cancels operation or installing
* or configuring or adding tab fails
*/
export declare function addAndConfigure(hostEntityIds: HostEntityIds, appTypes?: AppTypes[]): Promise<HostEntityTabInstance>;
/**
* @hidden
* @internal
* @beta
* Limited to Microsoft-internal use
*
* Returns all tab instances associated with a host entity
*
* @param hostEntityIds Ids of the host entity like channel, chat or meeting
*
* @returns Object with array of HostEntityTabInstance's associated with a host entity
*
* @throws Error if host does not support this capability, library as not been initialized successfully, input parameters are invalid or fetching tabs fails
*/
export declare function getAll(hostEntityIds: HostEntityIds): Promise<HostEntityTabInstances>;
/**
* @hidden
* @internal
* @beta
* Limited to Microsoft-internal use
*
* Launches host-owned UI that lets a user re-configure the contentUrl of the tab
*
* @param tab Configurable tab instance that needs to be updated
*
* @param hostEntityIds Ids of the host entity like channel, chat or meeting
*
* @returns The HostEntityTabInstance of the updated tab
*
* @throws Error if host does not support this capability, library as not been initialized successfully, input parameters are invalid, user cancels operation,
* re-configuring tab fails or if tab is a static tab
*/
export declare function reconfigure(tab: ConfigurableTabInstance, hostEntityIds: HostEntityIds): Promise<ConfigurableTabInstance>;
/**
* @hidden
* @internal
* @beta
* Limited to Microsoft-internal use
*
* Launches host-owned UI that lets a user rename the tab
*
* @param tab Configurable tab instance that needs to be updated
*
* @param hostEntityIds Ids of the host entity like channel, chat or meeting
*
* @returns The HostEntityTabInstance of the updated tab
*
* @throws Error if host does not support this capability, library as not been initialized successfully, input parameters are invalid, user cancels operation,
* re-naming tab fails or if tab is a static tab
*/
export declare function rename(tab: ConfigurableTabInstance, hostEntityIds: HostEntityIds): Promise<ConfigurableTabInstance>;
/**
* @hidden
* @internal
* @beta
* Limited to Microsoft-internal use
*
* Launches host-owned UI that lets a user remove the tab
*
* @param tab tab instance that needs to be updated. Can be static tab or configurable tab.
*
* @param hostEntityIds Ids of the host entity like channel, chat or meeting
*
* @returns Boolean. Returns true if removing tab was successful
*
* @throws Error if host does not support this capability, library as not been initialized successfully, input parameters are invalid, user cancels operation or
* removing tab fails
*/
export declare function remove(tab: HostEntityTabInstance, hostEntityIds: HostEntityIds): Promise<boolean>;
/**
* @hidden
* @internal
* @beta
* Limited to Microsoft-internal use
*
* Checks if the hostEntity.tab capability is supported by the host
* @returns boolean to represent whether the histEntity and hostEntity.tab capability is supported
*
* @throws Error if {@linkcode app.initialize} has not successfully completed
*/
export declare function isSupported(): boolean;