import { BaseExecutionContext, FullExecutionContext } from "@inkeep/agents-core";

//#region src/domains/run/types/executionContext.d.ts

/**
 * Extract userId from execution context metadata (when available)
 * Only available when request originates from an authenticated user session (e.g., playground)
 */
declare function getUserIdFromContext(ctx: FullExecutionContext): string | undefined;
/**
 * Create execution context from middleware values
 */
declare function createBaseExecutionContext(params: {
  apiKey: string;
  tenantId: string;
  projectId: string;
  agentId: string;
  apiKeyId: string;
  baseUrl?: string;
  subAgentId?: string;
  ref?: string;
  metadata?: BaseExecutionContext['metadata'];
}): BaseExecutionContext;
interface CommonSandboxConfig {
  runtime: 'node22' | 'typescript';
  timeout?: number;
  vcpus?: number;
}
interface NativeSandboxConfig extends CommonSandboxConfig {
  provider: 'native';
}
interface VercelSandboxConfig extends CommonSandboxConfig {
  provider: 'vercel';
  teamId: string;
  projectId: string;
  token: string;
}
type SandboxConfig = NativeSandboxConfig | VercelSandboxConfig;
//#endregion
export { NativeSandboxConfig, SandboxConfig, VercelSandboxConfig, createBaseExecutionContext, getUserIdFromContext };