import type { RunnerFailureOrigin, RunnerResult } from "../domain/result.js"; import type { RunnerInfo } from "../domain/runner.js"; import type { SessionReport } from "../domain/session-report.js"; import type { Case, SuiteWorkspaceConfig, WorkspaceBootstrapConfig } from "../domain/case.js"; import { type FailureClassInput } from "../failure-classification.js"; export interface ResolvedWorkspaceConfig { mode: "none" | "shared" | "isolated"; cwd: string; templateDir?: string; bootstrap?: WorkspaceBootstrapConfig; } interface WorkspaceSetupOptions { baseCwd: string; suiteWorkspace?: SuiteWorkspaceConfig; configWorkspace?: SuiteWorkspaceConfig; suiteDir: string; } interface ExecutionWorkspaceOptions { artifactDir: string; outputDir: string; case: Case; runner: RunnerInfo; timeoutMs: number; } interface BootstrapResult { command: string; args: string[]; durationMs: number; exitCode: number | null; stdoutPath: string; stderrPath: string; } export interface PreparedWorkspace { cwd: string; mode: "none" | "shared" | "isolated"; workspacePath?: string; templateDir?: string; bootstrap?: BootstrapResult; cleanup(): Promise<{ preserved: boolean; cleanupError?: string; }>; } export interface SharedWorkspaceSetupOptions { outputDir: string; artifactDir: string; timeoutMs: number; } export declare function resolveEffectiveWorkspace(options: WorkspaceSetupOptions): ResolvedWorkspaceConfig; export declare function validateSuiteWorkspaceConfig(config: SuiteWorkspaceConfig, configPath?: string): void; export declare function prepareWorkspace(config: ResolvedWorkspaceConfig, options: ExecutionWorkspaceOptions): Promise; export declare function finalizeWorkspace(prepared: PreparedWorkspace, options: { artifactDir: string; passed: boolean; }): Promise; export declare function prepareSharedWorkspace(config: ResolvedWorkspaceConfig, options: SharedWorkspaceSetupOptions): Promise; export declare function writeExecutionWorkspaceMetadata(filePath: string, value: { mode: "none" | "shared" | "isolated"; cwd: string; templateDir?: string; workspacePath?: string; bootstrap?: BootstrapResult; preserved: boolean; cleanupError?: string; }): Promise; export declare function getSharedWorkspacePath(outputDir: string): string; export declare function createExecutionFailureResult(error: unknown, options: { case: Case; runner: RunnerInfo; artifactDir: string; durationMs: number; failureOrigin?: RunnerFailureOrigin; failureClass?: FailureClassInput; failureLogPath?: string; report?: SessionReport; }): RunnerResult; export {};