import { type SetupCommandResult, type SetupCommandSpec } from "./commands.js"; import { type ManagedWorkshopUi } from "./workshop.js"; export { runSetupCommand, type SetupCommandResult, type SetupCommandSpec } from "./commands.js"; export type PrimusSetupOptions = { appRoot: string; workingDir: string; sessionDir: string; primusAgentDir: string; primusHome: string; }; type SetupUi = ManagedWorkshopUi & { intro: (message: string) => void; outro: (message: string) => void; /** Clears the most recently started clack spinner line (same instance), e.g. before password prompts. */ clearRecentSpinnerLine?: () => void; }; export type PrimusSetupDependencies = { ensureSupportedNodeVersion?: (version?: string) => void; pathExists?: (path: string) => boolean; ensureDirectory?: (path: string) => void; readFile?: (path: string) => string; writeFile?: (path: string, contents: string) => void; promptTavilyApiKey?: () => Promise; normalizePrimusSettings?: (settingsPath: string, bundledSettingsPath: string, authPath: string) => void; runCommand?: (spec: SetupCommandSpec) => Promise; environment?: NodeJS.ProcessEnv; ui?: SetupUi; platform?: NodeJS.Platform; now?: () => string; }; export declare function runSetup(options: PrimusSetupOptions, dependencies?: PrimusSetupDependencies): Promise;