import { type AgentSessionDependencies } from "./agent-session.js"; import { type InteractivePrompts } from "./interactive.js"; import { type AgentDependencies } from "./agents.js"; import { Command } from "commander"; import type { ClientContext } from "./client.js"; import type { ConfigContext, RelayConsoleSession } from "./config.js"; import { type UpdateCheck } from "./update-check.js"; export interface ProgramDependencies { agents?: AgentDependencies; configContext?: ConfigContext; resolveClient?: (profile?: string) => Promise; readStdin?: () => Promise; readSecret?: () => Promise; isInteractive?: boolean; prompts?: InteractivePrompts; skillPresent?: () => Promise; skillInstaller?: () => Promise; cwd?: string; confirmDelete?: () => Promise; confirmLogout?: () => Promise; /** The one Relay skill offer of a run, made at the end of a connect and * nowhere else (owner ruling, 2026-09-09). */ offerSkill?: () => Promise; connect?: Partial>; /** Which runtime is driving this command; `@vercel/detect-agent` by default. */ detectAgent?: () => Promise; terminalSession?: AgentSessionDependencies["session"]; terminalIO?: AgentSessionDependencies["io"]; terminalClient?: AgentSessionDependencies["client"]; stdout?: (value: string) => void; stderr?: (value: string) => void; fetch?: typeof fetch; /** Test/integration seam for the Console device-login flow. */ consoleLogin?: () => Promise; consoleRequest?: (path: string, init?: RequestInit) => Promise; /** `--json` was asked for, so commander's own usage text stays off the streams. */ json?: boolean; /** Override the process TTY check in focused tests. */ helpTTY?: boolean; /** A pre-rendered root heading, normally supplied only for TTY animation. */ helpHeading?: string; /** The update check of this run; `false` turns it off. Built from the registry by default. */ updateCheck?: UpdateCheck | false; /** Whether this copy was run from npx's cache; read from the script path by default. */ fromNpx?: boolean; /** A person reads stdout (a terminal, no agent, no --json): print sentences, not JSON. */ humanOutput?: boolean; /** Opens the sign-in page; the system browser by default. */ openBrowser?: (url: string) => Promise; } export declare const createProgram: (dependencies?: ProgramDependencies) => Command; export declare const runCLI: (argv: string[], dependencies?: ProgramDependencies) => Promise; //# sourceMappingURL=program.d.ts.map