import { SandboxConfig } from "../types/executionContext.js";

//#region src/domains/run/tools/NativeSandboxExecutor.d.ts

interface FunctionToolConfig {
  name?: string;
  description: string;
  inputSchema: Record<string, unknown>;
  executeCode: string;
  dependencies: Record<string, string>;
  sandboxConfig?: SandboxConfig;
}
declare class NativeSandboxExecutor {
  private tempDir;
  private sandboxPool;
  private executionSemaphores;
  private poolCleanupInterval;
  private sandboxInitPromises;
  constructor();
  cleanup(): Promise<void>;
  private getSemaphore;
  getExecutionStats(): Record<string, {
    availablePermits: number;
    queueLength: number;
  }>;
  private ensureTempDir;
  private generateDependencyHash;
  private getCachedSandbox;
  private addToPool;
  private cleanupSandbox;
  private startPoolCleanup;
  private detectModuleType;
  executeFunctionTool(toolId: string, args: any, config: FunctionToolConfig): Promise<any>;
  private executeInSandbox_Internal;
  private installDependencies;
  private executeInSandbox;
}
//#endregion
export { FunctionToolConfig, NativeSandboxExecutor };