import { type ToolDependencyProbe, type ToolDependencyReport } from "../../agent_executionEngine/basic_toolLayer/toolDependency/dependencyManager.js";
import { type ToolDependencyIterationPlan } from "../../agent_executionEngine/basic_toolLayer/toolDependency/dependencyIterationManager.js";
import { type EnsureDependencyAvailableResult } from "../../agent_executionEngine/basic_toolLayer/toolDependency/dependencyInstaller.js";
import { type BaseToolRuntimeReadinessPreflight, type BaseToolSupportCatalogEntry, type BaseToolSupportCatalogOptions } from "./baseToolSupportCatalog.js";
export type BaseToolDependencyRuntimeStatus = "available" | "missing" | "installable" | "installing" | "installed" | "requiresApproval" | "blocked" | "providerUnavailable" | "unknown";
export type BaseToolDependencyRuntimeDecision = "ready" | "requiresApproval" | "blocked";
export type BaseToolDependencyRuntimeMode = "observe" | "auto" | "full" | "autoInstallTrustedManaged";
export type BaseToolDependencyRuntimeContext = {
    runtimeId: string;
    sessionId: string;
    invocationId: string;
    toolId: string;
    toolInput?: unknown;
    governanceAccepted?: boolean;
    allowedScopes?: readonly string[];
    mode?: BaseToolDependencyRuntimeMode;
    managedRoot?: string;
    env?: Readonly<Record<string, string | undefined>>;
    homeDir?: string;
    timeoutMs?: number;
};
export type BaseToolDependencyRuntimeRequest = BaseToolSupportCatalogOptions & {
    context: BaseToolDependencyRuntimeContext;
    readiness?: BaseToolRuntimeReadinessPreflight;
    catalogEntry?: BaseToolSupportCatalogEntry;
    probes?: readonly ToolDependencyProbe[];
};
export type BaseToolDependencyRuntimeResult = {
    kind: "runtime.execEngine.baseToolDependencyRuntime.result";
    toolId: string;
    decision: BaseToolDependencyRuntimeDecision;
    status: BaseToolDependencyRuntimeStatus;
    report?: ToolDependencyReport;
    iterationPlan?: ToolDependencyIterationPlan;
    installResults: readonly EnsureDependencyAvailableResult[];
    missingDependencies: readonly string[];
    installableDependencies: readonly string[];
    approvalRequiredDependencies: readonly string[];
    providerUnavailableDependencies: readonly string[];
    events: readonly string[];
    reason: string;
    publicSafe: true;
};
export declare function preflightBaseToolDependencies(request: BaseToolDependencyRuntimeRequest): Promise<BaseToolDependencyRuntimeResult>;
export declare const baseToolDependencyRuntimeDescriptor: {
    readonly surface: "runtime.execEngine.baseToolDependencyRuntime";
    readonly declarationSource: "BaseToolDefinition.dependencies";
    readonly usesDependencyManager: true;
    readonly usesDependencyIterationManager: true;
    readonly trustedManagedAutoInstallIsExplicit: true;
    readonly systemGlobalInstallIsNeverSilent: true;
    readonly canonicalToolChainUnaffected: true;
};
