/**
 * SandboxWorker - Execute code in isolated Web Worker
 *
 * Provides safe execution environment for PCard logic.
 * Supports multiple runtimes:
 * - JavaScript: Native execution via Function()
 * - Python: Execution via Pyodide (WebAssembly Python)
 *
 * @see https://pyodide.org/en/stable/
 */
/** Supported runtime types */
export type RuntimeType = 'javascript' | 'python' | 'js' | 'py';
/**
 * SandboxWorker - Manages Web Worker for isolated execution
 *
 * Supports multiple runtimes:
 * - javascript/js: Native JS execution
 * - python/py: Python via Pyodide (WebAssembly)
 */
export declare class SandboxWorker {
    private worker;
    private pythonLoaded;
    private pendingRequests;
    private defaultTimeout;
    /**
     * Initialize the sandbox worker
     */
    init(): Promise<void>;
    private requestCounter;
    /**
     * Execute code in sandbox
     * @param code - Code to execute
     * @param input - Input data for the code
     * @param context - Optional execution context
     * @param runtime - Runtime to use: 'javascript' (default) or 'python'
     */
    execute(code: string, input: unknown, context?: Record<string, unknown>, runtime?: RuntimeType): Promise<unknown>;
    /**
     * Preload a runtime for faster first execution
     * Useful for Python which requires loading Pyodide (~10MB)
     * @param runtime - Runtime to preload: 'python' or 'javascript'
     */
    preloadRuntime(runtime?: RuntimeType): Promise<{
        loaded: boolean;
        runtime: string;
    }>;
    /**
     * Check if Python runtime is loaded
     */
    isPythonLoaded(): boolean;
    /**
     * Verify output matches expected
     * Note: Uses internal JSON-RPC format with direct values
     */
    verify(hash: string, expectedOutput: unknown, actualOutput: unknown): Promise<{
        verified: boolean;
    }>;
    /**
     * Send request and wait for response
     */
    private sendRequest;
    /**
     * Handle worker message
     */
    private handleMessage;
    /**
     * Handle worker error
     */
    private handleError;
    /**
     * Terminate the worker
     */
    terminate(): void;
    /**
     * Set timeout for requests
     */
    setTimeout(ms: number): void;
}
//# sourceMappingURL=SandboxWorker.d.ts.map