import type { ResolvedCwd } from './resolveCwds.js'; export interface ProblemDirIsolationCheckResult { passed: boolean; } /** * Check that a judge can run after only the problem directory is copied elsewhere. */ export declare function checkProblemDirIsolation(problemDir: string, resolvedCwd: ResolvedCwd, params: unknown): Promise; /** * Copy a problem directory into a temporary root, symlinking every ancestor `node_modules` so the * copied harness still resolves its imports. Callers must remove the returned `tempRoot`. */ export declare function copyProblemDirToTemporaryRoot(problemDir: string): Promise<{ tempRoot: string; copiedProblemDir: string; }>; /** * Remove a temporary directory even when judged code left permission-locked entries in it (e.g. a * mode-000 directory makes a plain `fs.rm` fail with EACCES). Returns whether removal succeeded. */ export declare function forciblyRemoveDirectory(dir: string): Promise; /** Synchronous variant of {@link forciblyRemoveDirectory} for signal handlers. */ export declare function forciblyRemoveDirectorySync(dir: string): boolean;