import { type PrimusPreviewOptions } from "./preview/handoff.js"; import { type PrimusRuntimeOptions } from "./pi/launch.js"; type PrimusMode = PrimusRuntimeOptions["mode"]; type PrimusLaunchCommand = { command: "launch"; workingDir: string; mode: PrimusMode | undefined; explicitModelSpec: string | undefined; thinkingLevel: string | undefined; initialPrompt: string | undefined; }; type PrimusSetupCommand = { command: "setup"; workingDir: string; }; type PrimusDoctorCommand = { command: "doctor"; workingDir: string; }; type PrimusUpdateCommand = { command: "update"; workingDir: string; }; type PrimusPreviewCommand = { command: "preview"; workingDir: string; scriptPath: string; expression?: string; }; type PrimusHelpCommand = { command: "help"; }; type PrimusVersionCommand = { command: "version"; }; export type PrimusCliArguments = PrimusLaunchCommand | PrimusSetupCommand | PrimusDoctorCommand | PrimusUpdateCommand | PrimusPreviewCommand | PrimusHelpCommand | PrimusVersionCommand; type PrimusCliParseDefaults = { cwd?: string; }; export type PrimusCliContext = { appRoot: string; primusHome: string; primusAgentDir: string; sessionDir: string; }; type PrimusCliDependencies = { launchPiChat?: (options: PrimusRuntimeOptions) => Promise; printHelp?: () => void; printVersion?: () => void; runSetup?: () => Promise | void; runDoctor?: () => Promise | void; runUpdate?: () => Promise | void; runPreview?: (options: PrimusPreviewOptions) => Promise | void; }; type PrimusLaunchReadinessDependencies = { platform?: NodeJS.Platform; pathExists?: (path: string) => boolean; }; export declare function isLaunchReady(primusHome: string, dependencies?: PrimusLaunchReadinessDependencies): boolean; export declare function parseCliArguments(argv: string[], defaults?: PrimusCliParseDefaults): PrimusCliArguments; export declare function executeCliCommand(parsed: PrimusCliArguments, context: PrimusCliContext, dependencies: Required): Promise; export declare function main(argv?: string[], dependencies?: PrimusCliDependencies): Promise; export {};