export interface SandboxSeedFile {
    readonly content: string | Uint8Array;
    readonly path: string;
}
import type { InternalSandboxSession, SandboxProcess, SandboxRemovePathOptions, SandboxSession, SandboxSpawnOptions } from "#shared/sandbox-session.js";
export interface FileBackedSandbox {
    readFileBytes(path: string): Promise<Buffer | null>;
    removePath(options: SandboxRemovePathOptions): Promise<void>;
    spawn(options: SandboxSpawnOptions): Promise<SandboxProcess>;
    writeFiles(files: ReadonlyArray<{
        readonly path: string;
        readonly content: Uint8Array;
    }>): Promise<void>;
}
export declare function createFileBackedInternalSandboxSession(input: {
    readonly sandbox: FileBackedSandbox;
}): InternalSandboxSession;
export declare function resolveWorkspacePath(path: string): string;
export declare function pathExists(path: string): Promise<boolean>;
export declare function copyDirectoryAtomically(sourcePath: string, targetPath: string): Promise<void>;
export declare function touchDirectory(path: string): Promise<void>;
export declare function resolveLocalProviderTemplateRootPath(cacheDirectory: string, providerCacheName: string, templateKey: string): string;
export declare function resolveLocalProviderTemplatesDirectory(cacheDirectory: string, providerCacheName: string): string;
export declare function resolveLocalProviderSessionRootPath(cacheDirectory: string, providerCacheName: string, sessionKey: string): string;
export declare function writeSandboxSeedFiles(session: SandboxSession, seedFiles: ReadonlyArray<SandboxSeedFile>): Promise<void>;
