import type { FileTree } from '@gemstack/ai-autopilot';
/**
 * Directory names never copied into a sandbox: build output, VCS, and caches. The
 * sandbox installs its own deps, so `node_modules` is copied by nobody — it is
 * rebuilt inside the container from the seeded `package.json`.
 */
export declare const SANDBOX_IGNORE: ReadonlySet<string>;
/** Options for {@link snapshotWorkspace}. */
export interface SnapshotOptions {
    /** Directory names to skip. Default {@link SANDBOX_IGNORE}. */
    ignore?: ReadonlySet<string>;
    /** Skip files larger than this many bytes (default 1 MiB) — assets belong in the repo, not the sandbox seed. */
    maxFileBytes?: number;
}
/**
 * Read a host workspace into a Runner {@link FileTree} (relative path → contents),
 * so a fresh sandbox container can be seeded with just the source the driver wrote.
 * This is the Docker analog of `LocalRunner.adopt`: Local adopts the host dir in
 * place, Docker cannot, so we copy the source in.
 *
 * Text only, and deliberately shallow on cost: build/VCS/cache dirs are skipped,
 * oversized files are skipped, and a file containing a NUL byte is treated as
 * binary and skipped (its absence does not stop the app from booting for a health
 * check). This is a first-slice serve-verification seed, not a faithful mirror.
 */
export declare function snapshotWorkspace(dir: string, opts?: SnapshotOptions): Promise<FileTree>;
//# sourceMappingURL=sandbox.d.ts.map