import type { BaseToolDefinition, BaseToolDependencyDeclaration, BaseToolFamily } from "../../agent_executionEngine/basic_toolLayer/baseTools/baseToolDefinition.js";
import type { BaseToolExecutorPort } from "../../agent_executionEngine/basic_toolLayer/baseTools/baseToolExecutorPort.js";
export type BaseToolRuntimeSupportStatus = "available" | "unavailable" | "disabled" | "requiresApproval" | "notImplemented";
export type BaseToolRuntimeSupportKind = "executor-port" | "permission" | "runtime-contract" | "provider-carrier" | "host-dependency";
export type BaseToolRuntimeSupportRequirement = {
    supportId: string;
    dependencyId: string;
    dependencyKind: BaseToolDependencyDeclaration["kind"];
    supportKind: BaseToolRuntimeSupportKind;
    required: boolean;
    description: string;
    portPath?: string;
    status: BaseToolRuntimeSupportStatus;
};
export type BaseToolSupportCatalogEntry = {
    toolId: string;
    family: BaseToolFamily;
    storageFamily: string;
    group: string;
    title: string;
    riskLevel: BaseToolDefinition["riskLevel"];
    permissionHints: readonly string[];
    dependencies: readonly BaseToolDependencyDeclaration[];
    requiredSupports: readonly BaseToolRuntimeSupportRequirement[];
    readiness: BaseToolRuntimeSupportStatus;
    sourcePath?: string;
    storageDocPath: string;
};
export type BaseToolSupportCatalogSnapshot = {
    total: number;
    byFamily: Readonly<Record<BaseToolFamily, number>>;
    byReadiness: Readonly<Record<BaseToolRuntimeSupportStatus, number>>;
    entries: readonly BaseToolSupportCatalogEntry[];
};
export type BaseToolSupportCatalogOptions = {
    executor?: BaseToolExecutorPort;
    implementedPortPaths?: readonly string[];
    disabledSupports?: readonly string[];
    approvalRequiredSupports?: readonly string[];
    supportStatusOverrides?: Readonly<Record<string, BaseToolRuntimeSupportStatus>>;
};
export type BaseToolRuntimeReadinessDecision = "allowed" | "blocked" | "requiresApproval";
export type BaseToolRuntimeReadinessPreflight = {
    toolId: string;
    found: boolean;
    decision: BaseToolRuntimeReadinessDecision;
    readiness: BaseToolRuntimeSupportStatus;
    entry?: BaseToolSupportCatalogEntry;
    blockingSupports: readonly BaseToolRuntimeSupportRequirement[];
    approvalSupports: readonly BaseToolRuntimeSupportRequirement[];
    advisorySupports: readonly BaseToolRuntimeSupportRequirement[];
    events: readonly string[];
    reason: string;
};
export type BaseToolRuntimeReadinessPreflightRequest = BaseToolSupportCatalogOptions & {
    toolId: string;
};
export declare function createBaseToolSupportCatalog(options?: BaseToolSupportCatalogOptions): readonly BaseToolSupportCatalogEntry[];
export declare function snapshotBaseToolSupportCatalog(options?: BaseToolSupportCatalogOptions): BaseToolSupportCatalogSnapshot;
export declare function evaluateBaseToolRuntimeReadiness(request: BaseToolRuntimeReadinessPreflightRequest): BaseToolRuntimeReadinessPreflight;
export declare const baseToolSupportCatalogDescriptor: {
    readonly surface: "runtime.execEngine.baseToolSupportCatalog";
    readonly catalogSource: "agentCore.basicTool.builtinBaseToolHandlers.definition.dependencies";
    readonly classificationAxis: "storage-family-group-toolId";
    readonly toolCountTarget: 175;
    readonly excludesOfficialTapOfficeBase: true;
    readonly executorPortIsSupportPrimitive: true;
    readonly preflightDecision: "blocks-missing-runtime-executor-support";
};
