@microsoft/teamsfx-api
Version:
teamsfx framework api
144 lines • 3.57 kB
TypeScript
import { IBot, IComposeExtension, IConfigurableTab, IStaticTab, IWebApplicationInfo } from "@microsoft/app-manifest";
import { Platform } from "./constants";
/**
* Definition of option item in single selection or multiple selection
*/
export interface OptionItem {
/**
* unique identifier of the option item in the option list
*/
id: string;
/**
* display name
*/
label: string;
/**
* short description
*/
description?: string;
/**
* detailed description
*/
detail?: string;
/**
* customized user data, which is not displayed
*/
data?: unknown;
/**
* @deprecated CLI display name. CLI will use `cliName` as display name, and use `id` instead if `cliName` is undefined.
*/
cliName?: string;
/**
* group name. If it's set, separator will be rendered on UI between groups.
*/
groupName?: string;
/**
* Actions that can be made within the item.
* @param An array of actions
* @param `icon` is the icon id of the action item
* @param `tooltip` is the hint of the action item
* @param `command` is the command name that will be executed when current action triggered
*/
buttons?: {
iconPath: string;
tooltip: string;
command: string;
}[];
}
export type Void = {};
export declare const Void: {};
/**
* environment meta data
*/
export interface EnvMeta {
name: string;
local: boolean;
sideloading: boolean;
}
export interface Inputs extends Record<string, any> {
platform: Platform;
projectPath?: string;
projectId?: string;
nonInteractive?: boolean;
correlationId?: string;
/**
* whether the caller is triggered by @teams or @office agent
*/
agent?: "teams" | "office";
/**
* Auth info about user selected APIs.
*/
apiAuthData?: AuthInfo[];
}
export type InputsWithProjectPath = Inputs & {
projectPath: string;
};
export type CreateProjectInputs = Inputs & {
"app-name": string;
folder: string;
};
export type DeepReadonly<T> = {
readonly [P in keyof T]: DeepReadonly<T[P]>;
};
export type MaybePromise<T> = T | Promise<T>;
/**
* simplified tooling settings for v3
*/
export interface Settings {
version: string;
trackingId: string;
}
export type ManifestCapability = {
name: "staticTab";
snippet?: IStaticTab;
existingApp?: boolean;
} | {
name: "configurableTab";
snippet?: IConfigurableTab;
existingApp?: boolean;
} | {
name: "Bot";
snippet?: IBot;
existingApp?: boolean;
} | {
name: "MessageExtension";
snippet?: IComposeExtension;
existingApp?: boolean;
} | {
name: "WebApplicationInfo";
snippet?: IWebApplicationInfo;
existingApp?: boolean;
};
export interface AuthInfo {
serverUrl: string;
authName?: string;
authType?: "apiKey" | "oauth2";
}
export interface ApiOperation {
id: string;
label: string;
groupName: string;
data: AuthInfo;
detail?: string;
}
export interface Warning {
type: string;
content: string;
data?: any;
}
export interface CreateProjectResult {
projectPath: string;
warnings?: Warning[];
shouldInvokeTeamsAgent?: boolean;
projectId?: string;
lastCommand?: string;
}
export interface TeamsAppInputs extends InputsWithProjectPath {
"manifest-file"?: string;
"package-file"?: string;
"output-package-file"?: string;
"output-folder"?: string;
env?: string;
"env-file"?: string;
}
//# sourceMappingURL=types.d.ts.map