import { TargetLanguage } from "../types"; export declare const TEMPLATE_REPOS: Record; /** * Git ref (tag or branch) to clone for each template. Pinning to a tag makes * the CLI-version-to-template pairing explicit instead of a date cutoff on * template main. v2.0.0 is the first TS template revision on published * @apso/crud ^1.0.1 (dual-dialect: nestjsx + PostgREST); the Python and Go * template repos are untagged and don't carry the dialect work. */ export declare const TEMPLATE_REFS: Record; export declare const PROJECT_NAME_PATTERN: RegExp; /** * Clone a template repository into the given project path. * Removes the .git directory after cloning. */ export declare function cloneTemplate(projectPath: string, language: TargetLanguage, log: (msg: string) => void): void; /** * Stamp the chosen language into the scaffolded `.apsorc`. * * `apso generate` resolves its target language as flag > .apsorc > prompt. * The TypeScript template (pinned at v2.0.0) ships an `.apsorc` without a * `language` field, so a bare `apso generate` right after `apso init` fell * through to the interactive prompt — which errors in non-TTY contexts * (this is what kept the weekly scaffold-smoke workflow red). Recording the * language `init` was given makes the scaffold self-describing. * * Best-effort: leaves an existing `language` value alone and skips files it * cannot parse as JSON. */ export declare function stampApsorcLanguage(projectPath: string, language: TargetLanguage, log: (msg: string) => void): void; /** * Ensure the scaffolded project has a `.env` file. * * Templates ship `.env.local` (and `.env.example`) but the NestJS env loader * reads `.env` by default, so a fresh scaffold would silently ignore the * shipped values and run on built-in defaults (wrong port, wrong database). * Copy `.env.local` (preferred) or `.env.example` to `.env` when no `.env` * exists yet. See apsoai/cli#103. */ export declare function ensureEnvFile(projectPath: string, log: (msg: string) => void): void; /** * Initialize a fresh git repository in the given directory. */ export declare function initGitRepo(projectPath: string): void;