/** * @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; /** * @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; /** * @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; /** * @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; /** * @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; /** * @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;