import type { TrustLevelType } from '../schema/oad'; export interface SandboxConfig { trustLevel: TrustLevelType; agentDir: string; networkAllowlist?: string[]; shellAllowed?: boolean; allowedCommands?: string[]; blockedCommands?: string[]; maxFileSize?: number; maxFiles?: number; networkAccess?: boolean; readOnlyPaths?: string[]; timeout?: number; } export interface ValidationResult { allowed: boolean; reason?: string; } export interface SandboxStatus { files: number; totalSize: number; violations: number; } export interface SandboxRestrictions { fileSystem: { read: string[]; write: string[]; }; network: { allowed: string[]; }; shell: boolean; } export declare class Sandbox { private config; private restrictions; private violations; private maxFileSize; private maxFiles; constructor(config: SandboxConfig); get trustLevel(): TrustLevelType; getRestrictions(): SandboxRestrictions; checkFileAccess(filePath: string, mode: 'read' | 'write'): boolean; checkNetworkAccess(url: string): boolean; checkShellAccess(): boolean; validateFileOp(action: 'read' | 'write' | 'delete', filePath: string): ValidationResult; validateCommand(command: string): ValidationResult; validateNetwork(url: string): ValidationResult; getStatus(): SandboxStatus; getViolations(): number; getMaxFileSize(): number; getMaxFiles(): number; } export interface RemoteSandboxConfig { backend: 'local' | 'docker' | 'ssh'; docker?: { image: string; volumes?: string[]; }; ssh?: { host: string; user: string; keyPath?: string; }; timeout?: number; } export interface ExecResult { stdout: string; stderr: string; exitCode: number; } export declare class SandboxManager { private defaultConfig; constructor(config?: Partial); exec(command: string, config?: Partial): Promise; upload(localPath: string, remotePath: string, config?: Partial): Promise; download(remotePath: string, localPath: string, config?: Partial): Promise; } //# sourceMappingURL=sandbox.d.ts.map