import type { Ask, Confirm } from "../publish/prompt.js"; export interface InitDeps { print: (line: string) => void; cwd: string; scaffold?: (targetDir: string, ref?: string) => Promise; install?: (targetDir: string) => Promise; isEmpty?: (targetDir: string) => Promise; /** Free-text prompt. Absent → not a TTY, so nothing may be asked. */ ask?: Ask; /** y/N prompt. Absent → not a TTY. */ confirm?: Confirm; /** Non-empty check for the resolved target; injected in tests. */ isNonEmpty?: (targetDir: string) => Promise; } /** The folder name offered when `init` is run bare and the creator just hits Enter. */ export declare const DEFAULT_APP_NAME = "my-ar-app"; /** * A folder name safe to create from a typed answer. Keeps this from becoming a * path-traversal seam: the answer names a child of the cwd, never `../` upward and * never an absolute path. */ export declare function sanitizeAppName(answer: string): string | null; export interface InitOptions { /** Positional target directory; defaults to the cwd. */ dir?: string; /** Skip the dependency install (CI, or a creator who wants to pick a manager). */ skipInstall?: boolean; /** Template version to scaffold from; defaults to the latest release. */ template?: string; } export declare function initCommand(deps: InitDeps, opts?: InitOptions): Promise;