import type { BaseToolPolicyMatrixSpec, BaseToolPolicyRule, SandboxResourceLimits, SandboxSpec } from "../runtimeAgentManifest.js";
import type { BaseToolRuntimeReadinessPreflight, BaseToolSupportCatalogEntry } from "./baseToolSupportCatalog.js";
export type BaseToolRuntimeGovernanceStatus = "allow" | "deny" | "requiresApproval";
export type BaseToolRuntimeGovernanceRequest = {
    toolId: string;
    policyMatrix: BaseToolPolicyMatrixSpec;
    sandbox: SandboxSpec;
    readiness?: BaseToolRuntimeReadinessPreflight;
    catalogEntry?: BaseToolSupportCatalogEntry;
    resourceLimits?: SandboxResourceLimits;
    metadata?: Readonly<Record<string, unknown>>;
};
export type BaseToolRuntimeGovernanceDecision = {
    kind: "runtime.execEngine.baseTool.governanceDecision";
    toolId: string;
    family?: string;
    group?: string;
    risk: "safe" | "risky" | "dangerous";
    status: BaseToolRuntimeGovernanceStatus;
    policyProfile: BaseToolPolicyMatrixSpec["profile"];
    policyMatrixId: string;
    matchedRule?: BaseToolPolicyRule;
    approvalRequired: boolean;
    approvalReason?: string;
    sandbox: {
        sandboxId: string;
        profile: SandboxSpec["profile"];
        providerFamily?: SandboxSpec["providerFamily"];
        isolationLevel?: SandboxSpec["isolationLevel"];
        filesystem: SandboxSpec["filesystem"];
        network: SandboxSpec["network"];
        shell: SandboxSpec["shell"];
        hostObserved: boolean;
        dependencyRefs: readonly string[];
    };
    readiness?: BaseToolRuntimeReadinessPreflight;
    resourceLimits: SandboxResourceLimits;
    publicSafe: true;
    events: readonly string[];
    metadata: Readonly<Record<string, unknown>>;
};
export declare function evaluateBaseToolRuntimeGovernance(request: BaseToolRuntimeGovernanceRequest): BaseToolRuntimeGovernanceDecision;
