import type { LanguageModel } from 'ai';
import { type RunManifest, type RunCaseEntry } from './run-paths.js';
export interface RunCreateOptions {
    /** Natural-language description of what the user wants. */
    requirements: string;
    /** Scale hint (personal / small / medium / enterprise). Optional. */
    scale?: string;
    /** Preferred tech (typescript+nestjs / python+django / etc.). Optional. */
    preferredTech?: string;
    /** Output directory for the structured run. */
    outputDir: string;
    /** Run verify-create after the draft pass. */
    verify?: boolean;
    /** Materialize project/ via `spv init` + `spv realize all`. */
    realize?: boolean;
    /** Pre-resolved LanguageModel (for cross-call session caching). */
    model?: LanguageModel;
    /**
     * Externally-managed claude-cli session ID — passed to resolveModel when
     * `model` isn't provided. Lets harness orchestrators share session state
     * across N spawn'd `spv ai create` invocations.
     */
    sessionId?: string;
    /** Per-call timeout. Default 10 min. */
    timeoutMs?: number;
    /** Identity fields recorded in manifest. */
    prompt?: string;
    providerId?: string;
    modelId?: string;
    experimentRunId?: string;
    caseName?: string;
    caseMeta?: RunCaseEntry;
}
export interface RunCreateResult {
    outputDir: string;
    draftSpecPath: string;
    finalSpecPath: string;
    finalStage: 'draft' | 'verified';
    validateFinal: {
        ok: boolean;
        errors: string;
    };
    realize: {
        ok: boolean;
        error?: string;
    } | null;
    draftDurationMs: number;
    verifyDurationMs: number;
    wallTimeMs: number;
    manifest: RunManifest;
}
/**
 * Execute the full create pipeline: NL request → draft spec → optional verify
 * → validate → optional realize. Writes the structured run output. Returns
 * paths + status; caller composes scoring / README finalization separately.
 */
export declare function runCreate(opts: RunCreateOptions): Promise<RunCreateResult>;
//# sourceMappingURL=create-runner.d.ts.map