import type { Writable } from "node:stream"; export declare class InitUsageError extends Error { } export type InitProvider = string; export interface InitOptions { readonly directory: string; readonly template?: string; readonly listTemplates?: boolean; readonly provider: InitProvider; readonly withWorkflows: boolean; readonly withEvals: boolean; readonly force: boolean; readonly help: boolean; } export interface InitRuntime { readonly stdout: Writable; readonly stderr: Writable; /** Override template root (tests). Defaults to package `templates/init`. */ readonly templatesRoot?: string; /** Override gallery root (tests). Defaults to package `templates`. */ readonly galleryRoot?: string; /** Override package version stamped into generated package.json. */ readonly packageVersion?: string; /** Working directory used to resolve relative destinations. Defaults to process.cwd(). */ readonly cwd?: string; } export interface InitResult { readonly targetDir: string; readonly writtenFiles: readonly string[]; readonly template?: string; readonly provider: InitProvider; readonly withWorkflows: boolean; readonly withEvals: boolean; readonly totalBytes: number; } export interface TemplateInfo { readonly name: string; readonly description: string; readonly version?: string; readonly path: string; } interface ProviderSpec { readonly id: string; readonly packageName?: string; /** Module specifier the CLI's real-provider mode dynamically imports (e.g. `@arnilo/prism-providers/openai`). */ readonly factoryModule?: string; /** Named export on `factoryModule` that builds the provider. */ readonly factoryExport?: string; readonly envKey?: string; readonly envPlaceholder?: string; readonly modelProvider: string; readonly modelName: string; readonly imports: string; readonly providerExpression: string; readonly modelExpression: string; } /** Provider catalog shared by `prism init` templates and the CLI's real-provider mode. */ export declare function loadProvidersCatalog(templatesRoot?: string): ReadonlyMap; /** Provider ids supported by `prism init --provider`. Loaded from templates data. */ export declare function listInitProviders(templatesRoot?: string): readonly string[]; /** Template list discovered from the templates gallery. */ export declare function listInitTemplates(galleryRoot?: string): readonly TemplateInfo[]; export declare function getInitUsage(templatesRoot?: string, galleryRoot?: string): string; export declare const initUsage: string; export declare function parseInitArgs(argv: readonly string[], templatesRoot?: string, galleryRoot?: string): InitOptions; export declare function runInitCommand(argv: readonly string[], runtime: InitRuntime): Promise; export declare function createInitProject(options: InitOptions, runtime?: InitRuntime): Promise; export declare function defaultTemplatesRoot(): string; export declare function defaultGalleryRoot(): string; export {};