import { RunConfig } from '../types/artifact.js'; import { FailureRecord } from '../types/failure.js'; export interface ReplayOptions { artifactPath: string; versionMatch: 'strict' | 'current' | 'branch'; envOverrides: Record; /** Git commit from the artifact manifest (used for strict mode) */ gitCommit?: string; /** Git branch from the artifact manifest (used for branch mode) */ gitBranch?: string; sandboxLevel?: 'workspace' | 'isolated' | 'full'; /** Platform the artifact was captured on (for cross-platform translation) */ capturedPlatform?: string; /** Architecture the artifact was captured on */ capturedArch?: string; /** Override source directory for git operations — use current dir's repo instead of captured path */ sourceDir?: string; } export interface ReplayResult { actualFailure: FailureRecord; expectedFailure: FailureRecord; actualStdout: string; actualStderr: string; /** The directory where replay actually ran */ replayDirectory: string; /** Whether the sandbox fell back to artifact file snapshots */ usedFallback?: boolean; /** Reason for fallback (for user messaging) */ fallbackReason?: string; /** Source of files used for replay */ sourceType?: string; /** Sandbox architecture layers applied */ bugBox?: { level: string; appliedLayers: string[]; skippedLayers: string[]; platform: string; }; /** Cross-platform translation info */ crossPlatform?: { needsTranslation: boolean; translations: string[]; warnings: string[]; blockers: string[]; }; } /** * Replays a captured artifact in an isolated sandbox. * * Three modes: * - current: runs in cwd (no sandbox, fast) * - strict: creates temp dir at the exact git commit, falls back to artifact files/ * - branch: creates temp dir at the branch tip, falls back to current * * The sandbox is always cleaned up after the command finishes. */ export declare function replayArtifact(runConfig: RunConfig, expectedFailure: FailureRecord, options: ReplayOptions): Promise; //# sourceMappingURL=engine.d.ts.map