import { isCodingAgentLaunch } from "#cli/agent-detection.js"; import { detectInvokingPackageManager, detectPackageManager } from "#setup/package-manager.js"; import { runPackageManagerInstall, spawnPackageManager } from "#setup/primitives/index.js"; import { addAgentToProject } from "#setup/scaffold/create/add-to-project.js"; import { ensureChannel, scaffoldBaseProject } from "#setup/scaffold/index.js"; import { tryInitializeGit } from "./init-git.js"; export interface InitCliLogger { error(message: string): void; log(message: string): void; } export interface InitCommandOptions { /** Add the Web Chat channel (a Next.js app). Set by `--channel-web-nextjs`. */ channelWebNextjs?: boolean; } export interface InitCommandDependencies { addAgentToProject: typeof addAgentToProject; detectInvokingPackageManager: typeof detectInvokingPackageManager; detectPackageManager: typeof detectPackageManager; ensureChannel: typeof ensureChannel; isCodingAgentLaunch: typeof isCodingAgentLaunch; now: () => number; runPackageManagerInstall: typeof runPackageManagerInstall; scaffoldBaseProject: typeof scaffoldBaseProject; spawnPackageManager: typeof spawnPackageManager; tryInitializeGit: typeof tryInitializeGit; } export declare const EVE_INIT_PACKAGE_SPEC_ENV = "EVE_INIT_PACKAGE_SPEC"; /** * Creates a new eve agent (`target` is a project name), or adds one to an * existing project (`target` is a directory), without prompts or external * provisioning. * * Runs launched by a coding agent get the dev command printed instead of * spawned after scaffolding, since the dev TUI would wedge the launching agent. */ export declare function runInitCommand(logger: InitCliLogger, parentDirectory: string, target: string | undefined, options: InitCommandOptions, dependencies?: InitCommandDependencies): Promise;