import { FxError, Inputs, UserInteraction } from "@microsoft/teamsfx-api"; import { Result } from "neverthrow"; import { MCPFetchResult } from "../../common/mcpToolFetcher"; import { type ODRServer } from "../../common/odrProvider"; import { SearchOpenAPISpecResult } from "../../common/kiotaClient"; import { OptionsProvider } from "../collectInputs/collectInputs"; import { Answers, DeclarativeLocator } from "../model/dataModel"; /** Gate `csharp` by surface and the .NET flag; other languages pass through. */ export declare function gateLanguagesBySurface(languages: string[], surface: string, flagReader: (name: string) => boolean): string[]; /** Injected provider and feature-flag overrides. */ export interface CreateInputsDeps { /** Override `optionsFrom` providers (e.g. a live `mcp.serverTypes`); merged over the defaults. */ optionsProvider?: Record; /** The feature-flag reader behind `featureFlag('…')` (default: env-backed). */ flagReader?: (name: string) => boolean; /** The host surface (`vscode` / `cli` / `vs`) — gates the `csharp` language axis (default `vscode`). */ surface?: string; /** Full create inputs when the create floor (`folder` / `app-name`) should be appended after Q2. */ inputs?: Inputs; /** Fetch static MCP tools when CLI did not provide a tools file path. */ fetchMcpTools?: (serverUrl: string) => Promise; /** List available local MCP servers for the dynamic MCP create flow. */ listLocalMcpServers?: () => Promise; /** Search public OpenAPI descriptions for the v3-compatible OpenAPI source picker. */ searchOpenAPISpec?: (query: string) => Promise; /** Continue Q1's step numbering (its `promptCount`) so Q2's first prompt shows a Back button. */ baseStep?: number; /** When true, a back past Q2's first prompt returns `{ kind: "back" }` (the front door re-enters Q1). */ backable?: boolean; } /** The create-input walk's outcome: completed answers, or a `back` for the front door's re-entry loop. */ export type CreateInputsOutcome = { kind: "done"; answers: Answers; } | { kind: "back"; }; /** * Run one create template's Q2 + common floor over the host surface, returning a * resumable outcome. `deps.baseStep` continues Q1's step numbering and * `deps.backable` turns a back past the first prompt into a `{ kind: "back" }` * outcome (the front door then re-enters Q1). See collect-create-inputs CCI-25/26. */ export declare function runCreateInputsWalk(floorBytes: Buffer, locator: DeclarativeLocator, entryParams: Answers, ui: UserInteraction, deps?: CreateInputsDeps): Promise>; /** * Run one create template's Q2 over the host surface — the stable non-resumable * entry over {@link runCreateInputsWalk} (`backable` off), so a back past the * first prompt cancels and the result is the plain `Answers`. */ export declare function runCreateInputs(floorBytes: Buffer, locator: DeclarativeLocator, entryParams: Answers, ui: UserInteraction, deps?: CreateInputsDeps): Promise>; //# sourceMappingURL=createInputs.d.ts.map