import { ensureConnectionDependencies, listAuthoredConnections } from "#setup/scaffold/index.js";
import { detectPackageManager } from "#setup/package-manager.js";
import { runPackageManagerInstall } from "#setup/primitives/pm/run.js";
import { type AddConnectionsDeps } from "../boxes/add-connections.js";
import { detectDeployment } from "../project-resolution.js";
import type { Prompter } from "../prompter.js";
import { getVercelAuthStatus } from "../vercel-project.js";
import { runLinkFlow } from "./link.js";
export declare const CONNECTIONS_PROMPT_MESSAGE = "Select an MCP server to add to your agent through Vercel Connect";
export interface ConnectionsFlowDeps {
    detectDeployment: typeof detectDeployment;
    detectPackageManager: typeof detectPackageManager;
    getVercelAuthStatus: typeof getVercelAuthStatus;
    runLinkFlow: typeof runLinkFlow;
    ensureConnectionDependencies: typeof ensureConnectionDependencies;
    listAuthoredConnections: typeof listAuthoredConnections;
    runPackageManagerInstall: typeof runPackageManagerInstall;
    addConnections?: AddConnectionsDeps;
}
export type ConnectionsFlowResult = {
    kind: "done";
    addedConnections: readonly string[];
} | {
    kind: "cancelled";
} | {
    kind: "failed";
    addedConnections: readonly string[];
    message: string;
};
/** Runs `/connect`, linking a project on first selection when needed. */
export declare function runConnectionsFlow(input: {
    appRoot: string;
    prompter: Prompter;
    signal?: AbortSignal;
    disabledConnectionReasons?: Readonly<Record<string, string>>;
    deps?: Partial<ConnectionsFlowDeps>;
}): Promise<ConnectionsFlowResult>;
