import { Tree } from '@nx/devkit'; export declare function isNonInteractive(): boolean; export interface AgentCapability { generator: string; params: Record; description: string; } export interface CapabilitySpec { capabilities: AgentCapability[]; } /** * Result returned when the agent conversation completes. * filesWritten is the number of files applied to the Nx Tree from the * agent workspace (new files and modified integration files like main.ts). */ export interface AgentResult { filesWritten: number; /** True when the user was in an active conversation before it ended. */ userInteracted: boolean; /** True when the conversation ended via Ctrl+C (SIGINT). */ interrupted?: boolean; } /** * After a consultAgent call, check whether the user interrupted before any * files were generated and confirm they still want to proceed with the base * scaffolding. Throws if the user declines, which aborts the Nx Tree commit. */ export declare function confirmAfterAgentInterrupt(result: AgentResult | null): Promise; /** * Connect to the ADSP agent-service and conduct a multi-turn conversation * with the nx-adsp-agent. The agent uses its workspace tools to write * generated and modified files; this function retrieves the workspace state * after the conversation and applies all files to the Nx Tree. * * The socket connection and file upload start immediately. While the files * are uploading, the developer is prompted for a brief project description. * The initial message is sent as soon as both the upload and the description * are ready — whichever finishes last. * * Returns null if agent-service is unavailable — callers should skip the * agent step gracefully in that case. */ export declare function consultAgent(directoryServiceUrl: string, accessToken: string, projectContext: { projectName: string; projectType: 'express-service' | 'react-app' | 'angular-app' | 'vue-app' | 'mern' | 'mean' | 'pern' | 'pean' | 'pevn' | 'mevn'; tenant: string; pluginVersion: string; /** Content of key integration files for the agent to read and potentially modify. */ existingFiles: Record; }, host: Tree, projectRoot: string, options?: { /** Thread ID to use. When omitted a new UUID is generated. */ threadId?: string; /** * When true, skip the description prompt and send a continuation message instead, * letting the agent carry context from a prior interaction on the same thread. */ isContinuation?: boolean; /** * Additional project roots for composite generators (mern, mean). * Files whose paths start with a given prefix are written to the mapped root * rather than projectRoot. E.g. { 'app': '/path/to/my-app' } routes any * workspace file beginning with 'app/' to that root (with the prefix stripped). */ additionalRoots?: Record; }): Promise;