import type { ExecutionConfig, APIGroupConfig, ClientToolDefinition } from '@mondaydotcomorg/atp-protocol';
import { log } from '@mondaydotcomorg/atp-runtime';
import type { RuntimeContext } from './types.js';
import { SecurityPolicyEngine } from '@mondaydotcomorg/atp-provenance';
export declare class SandboxBuilder {
    private apiGroups;
    private policyEngine;
    constructor(apiGroups: APIGroupConfig[]);
    createSandbox(context: RuntimeContext, config: ExecutionConfig, logger: ReturnType<typeof log.child>, executionId: string, policyEngine?: SecurityPolicyEngine, clientTools?: ClientToolDefinition[]): Record<string, unknown>;
    private createAPIFunctions;
    /**
     * Creates API functions combining both server tools and client tools
     */
    private createAPIFunctionsWithClientTools;
    /**
     * Creates API functions for client-provided tools that trigger pause/resume
     */
    private createClientToolFunctions;
    /**
     * Get or create nested group object from hierarchical path.
     * Supports hierarchical group names like "github/readOnly/repos"
     * Creates nested structure: api.github.readOnly.repos
     * @param api - Root API object
     * @param groupName - Group name (may contain / for hierarchy)
     * @returns The deepest nested object for the group
     */
    private getOrCreateNestedGroup;
}
//# sourceMappingURL=sandbox-builder.d.ts.map