import type { BaseToolFamily, BaseToolInvokeResult } from "../../agent_executionEngine/basic_toolLayer/baseTools/baseToolDefinition.js";
import type { BaseToolExecutorPort } from "../../agent_executionEngine/basic_toolLayer/baseTools/baseToolExecutorPort.js";
import { BaseToolRegistry } from "../../agent_executionEngine/basic_toolLayer/baseTools/baseToolRegistry.js";
import { type BasicToolAdapterFamily } from "../../agent_executionEngine/basic_toolLayer/invocationAdapter.js";
import { type BaseToolRuntimeReadinessPreflight, type BaseToolRuntimeSupportStatus } from "./baseToolSupportCatalog.js";
import type { ExecEngineRuntimeCaller, ExecEngineRuntimeGate } from "./execEngineRuntime.js";
export type BaseToolRuntimeMountBoundary = "input" | "contract" | "governance" | "scope" | "runtime-state" | "registry" | "bridge" | "handler";
export type BaseToolRuntimeMountErrorCode = "MISSING_RUNTIME_ID" | "MISSING_SESSION_ID" | "MISSING_TOOL_ID" | "MISSING_EXECUTOR" | "ADAPTER_REJECTED" | "BRIDGE_REJECTED" | "TOOL_NOT_FOUND" | "HANDLER_NOT_FOUND" | "RUNTIME_SUPPORT_UNAVAILABLE" | "HANDLER_THROWN";
export type BaseToolRuntimeMountResourceLimits = {
    timeoutMs?: number;
    maxOutputBytes?: number;
};
export type BaseToolRuntimeReadinessMode = "observe" | "block-unavailable" | "require-ready";
export type BaseToolRuntimeMountRequest = {
    runtimeId?: string;
    sessionId?: string;
    toolId?: string;
    toolCallId?: string;
    operation?: string;
    input?: Readonly<Record<string, unknown>>;
    executor?: BaseToolExecutorPort;
    registry?: BaseToolRegistry;
    caller?: ExecEngineRuntimeCaller;
    runtimeReady?: boolean;
    family?: BasicToolAdapterFamily;
    requestedScopes?: readonly string[];
    allowedScopes?: readonly string[];
    resourceLimits?: BaseToolRuntimeMountResourceLimits;
    contract?: ExecEngineRuntimeGate;
    governance?: ExecEngineRuntimeGate;
    readinessMode?: BaseToolRuntimeReadinessMode;
    implementedPortPaths?: readonly string[];
    disabledSupports?: readonly string[];
    approvalRequiredSupports?: readonly string[];
    supportStatusOverrides?: Readonly<Record<string, BaseToolRuntimeSupportStatus>>;
    metadata?: Readonly<Record<string, unknown>>;
};
export type BaseToolMountedInvocation = {
    kind: "runtime.execEngine.baseTool.mountedInvocation";
    runtimeId: string;
    sessionId: string;
    toolId: string;
    toolCallId: string;
    family: BaseToolFamily;
    mountedVia: "createBaseToolRegistry.lookupHandler";
    adapterRoute: "agentCore.basicTool.invocationAdapter";
    bridgeRoute: "runtime.execEngine.invocationBridge";
    executorPort: "BaseToolExecutorPort";
    handlerDispatched: true;
    toolResultOk: boolean;
    runtimeReadiness: BaseToolRuntimeReadinessPreflight;
    unsafeSideEffects: "delegated-to-handler-and-executor-port";
};
export type BaseToolRuntimeMountError = {
    code: BaseToolRuntimeMountErrorCode;
    message: string;
    boundary: BaseToolRuntimeMountBoundary;
    publicSafe: true;
};
export type BaseToolRuntimeMountResult = {
    ok: true;
    invocation: BaseToolMountedInvocation;
    toolResult: BaseToolInvokeResult;
    events: readonly string[];
} | {
    ok: false;
    error: BaseToolRuntimeMountError;
    runtimeReadiness?: BaseToolRuntimeReadinessPreflight;
    events: readonly string[];
};
export declare const baseToolRuntimeMountDescriptor: {
    readonly surface: "runtime.execEngine.baseToolRuntimeMount";
    readonly capability: "mount-baseTool-registry-handler-through-runtime-execEngine";
    readonly chain: readonly ["agentCore.basicTool.invocationAdapter", "runtime.execEngine.invocationBridge", "agentCore.basicTool.registry.lookupHandler", "BaseToolHandler.invoke", "BaseToolExecutorPort"];
    readonly registry: "agentCore.basicTool.registry";
    readonly executorPort: "BaseToolExecutorPort";
    readonly hostOwnsRealExecution: true;
    readonly readinessPreflight: "runtime.execEngine.baseToolSupportCatalog";
};
export declare function invokeMountedBaseTool(request?: BaseToolRuntimeMountRequest): Promise<BaseToolRuntimeMountResult>;
