import type { RepoDiscoverySnapshot } from "./repo-discovery.js";
export interface RepoRunSpecResult {
    specFile: string;
    status: "passed" | "failed" | "error" | "skipped";
    exitCode: number | null;
    stdout: string;
    stderr: string;
    durationMs: number;
    /** Parseable test names and their individual status */
    testResults: {
        name: string;
        status: "passed" | "failed" | "skipped";
    }[];
    error?: string;
}
export interface RepoRunOptions {
    /** Discovery snapshot for the repo */
    snapshot: RepoDiscoverySnapshot;
    /** Specific spec files to run (defaults to all discovered) */
    specFiles?: string[];
    /** Extra args to pass to Playwright */
    extraArgs?: string[];
    /** Timeout per spec file in ms */
    timeout?: number;
    /** Project ID for result storage */
    projectId?: string;
    /** URL the dev server is running on */
    url?: string;
    /** Model hint (stored in run metadata) */
    model?: string;
    /** Run label */
    label?: string;
}
export interface RepoRunResult {
    runId: string;
    specResults: RepoRunSpecResult[];
    total: number;
    passed: number;
    failed: number;
    skipped: number;
    errored: number;
    durationMs: number;
    status: "passed" | "failed" | "error";
}
export declare function runRepoTests(opts: RepoRunOptions): Promise<RepoRunResult>;
export interface PrepResult {
    steps: {
        cmd: string;
        success: boolean;
        output: string;
        durationMs: number;
    }[];
    allSucceeded: boolean;
}
export declare function runPrep(snapshot: RepoDiscoverySnapshot, steps: ("install" | "browsers" | "dev" | "build" | "seed")[]): PrepResult;
//# sourceMappingURL=repo-executor.d.ts.map