import { QTreeNode, Stage, PluginContext, Plugin, Func, FxError, Result, Solution, SolutionContext, TeamsAppManifest, AzureSolutionSettings } from "@microsoft/teamsfx-api"; declare type LoadedPlugin = Plugin & { name: string; displayName: string; }; export declare type PluginsWithContext = [LoadedPlugin, PluginContext]; declare enum SolutionRunningState { Idle = "idle", ProvisionInProgress = "ProvisionInProgress", DeployInProgress = "DeployInProgress", PublishInProgress = "PublishInProgress" } export declare class TeamsAppSolution implements Solution { identityPlugin: LoadedPlugin; fehostPlugin: LoadedPlugin; sqlPlugin: LoadedPlugin; spfxPlugin: LoadedPlugin; botPlugin: LoadedPlugin; aadPlugin: LoadedPlugin; functionPlugin: LoadedPlugin; simpleAuthPlugin: LoadedPlugin; localDebugPlugin: LoadedPlugin; apimPlugin: LoadedPlugin; appStudioPlugin: LoadedPlugin; runningState: SolutionRunningState; allPlugins: LoadedPlugin[]; pluginMap: Map; constructor(); private getPluginAndContextArray; init(ctx: SolutionContext): Promise>; fillInSolutionSettings(ctx: SolutionContext): Result; /** * create */ create(ctx: SolutionContext): Promise>; open(ctx: SolutionContext): Promise>; private reloadManifest; private reloadManifestAndCheckRequiredFields; reloadPlugins(solutionSettings: AzureSolutionSettings): void; private spfxSelected; private isAzureProject; scaffoldOne(plugin: LoadedPlugin, ctx: SolutionContext): Promise>; provisionOne(plugin: LoadedPlugin, ctx: SolutionContext): Promise>; /** * update */ update(ctx: SolutionContext): Promise>; private getSelectedPlugins; /** * scaffold */ scaffold(ctx: SolutionContext): Promise>; doScaffold(ctx: SolutionContext, selectedPlugins: LoadedPlugin[]): Promise>; /** * Load the content of the latest permissions.json file to config * @param rootPath root path of this project * @param config solution config */ private getPermissionRequest; private createManifestForRemote; private createAndConfigTeamsManifest; /** * Checks whether solution's state is idle */ private checkWhetherSolutionIsIdle; private checkWetherProvisionSucceeded; /** * Provision resources. It can only run in a non-SPFx project when solution's running state is Idle. * Solution's provisionSucceeded config value will be set to true if provision succeeds, to false otherwise. * */ provision(ctx: SolutionContext): Promise>; /** * provision */ doProvision(ctx: SolutionContext): Promise>; private canDeploy; private canPublish; deploy(ctx: SolutionContext): Promise>; /** * deploy */ private doDeploy; publish(ctx: SolutionContext): Promise>; getTabScaffoldQuestions(ctx: SolutionContext, addAzureResource: boolean): Promise>; /** * collect solution level question * @param ctx */ getQuestions(stage: Stage, ctx: SolutionContext): Promise>; private updateApp; private createAndUpdateApp; localDebug(ctx: SolutionContext): Promise>; doLocalDebug(ctx: SolutionContext): Promise>; private parseTeamsAppTenantId; private loadTeamsAppTenantId; private getConfigForCreatingManifest; private getLocalDebugConfig; callFunc(func: Func, ctx: SolutionContext): Promise>; getAzureSolutionSettings(ctx: SolutionContext): AzureSolutionSettings; getQuestionsForAddResource(ctx: SolutionContext, manifest?: TeamsAppManifest): Promise>; getQuestionsForAddCapability(ctx: SolutionContext, manifest: TeamsAppManifest): Promise>; /** * user questions for customized task */ getQuestionsForUserTask(func: Func, ctx: SolutionContext): Promise>; executeAddResource(ctx: SolutionContext): Promise>; executeAddCapability(func: Func, ctx: SolutionContext): Promise>; /** * execute user task */ executeUserTask(func: Func, ctx: SolutionContext): Promise>; private extractParamForRegisterTeamsAppAndAad; private prepareConfigForRegisterTeamsAppAndAad; private extractConfigForRegisterTeamsAppAndAad; /** * This function is only called by cli: teamsfx init. The context may be different from that of vsc: no .${ConfigFolderName} folder, no permissions.json * In order to reuse aad plugin, we need to pretend we are still in vsc context. Currently, we don't support icons, because icons are not included in the * current contract. */ private registerTeamsAppAndAad; } export {}; //# sourceMappingURL=solution.d.ts.map