import type { ServeModelEntry } from './presets.js'; export interface QvacConfig { serve?: { models?: Record; [k: string]: unknown; }; [k: string]: unknown; } /** A non-JSON config (qvac.config.{js,mjs,ts}) in `dir`, if any — we can't safely * rewrite those, so the command emits guidance instead of clobbering them. */ export declare function foreignConfigPath(dir: string): string | null; /** The set of model constants/sources already configured (an entry's `model` * or `src`), so re-running configure is idempotent per model. */ export declare function existingModelIdentities(config: QvacConfig): Set; /** Map each configured model id (its `model`/`src`) to the alias that holds it — * first alias wins. Lets `--force` overwrite the existing entry for a model in * place instead of minting a new deduped alias. */ export declare function existingAliasesByModel(config: QvacConfig): Map; export declare function loadJsonConfig(path: string): QvacConfig; export interface MergeResult { config: QvacConfig; added: string[]; conflicts: string[]; } /** Merge new aliases into `serve.models`, preserving existing keys. Without * `force`, an alias that already exists is reported as a conflict and skipped. */ export declare function mergeServeModels(existing: QvacConfig, additions: Record, force: boolean): MergeResult; export declare function serializeConfig(config: QvacConfig): string; /** Write via a temp file + rename so a crash can't leave a half-written config. */ export declare function writeConfigAtomically(path: string, config: QvacConfig): void; //# sourceMappingURL=write-config.d.ts.map