export type ToolDependencyBoundary = "input" | "contract" | "governance" | "scope" | "permission";
export type ToolDependencyKind = "binary" | "runtime" | "environment" | "package" | "service" | "permission" | "custom";
export type ToolDependencyStatus = "satisfied" | "missing" | "stale" | "conflict" | "blocked" | "unknown";
export type ToolDependencyDeclaration = {
    dependencyId?: string;
    kind?: ToolDependencyKind;
    displayName?: string;
    required?: boolean;
    requestedVersion?: string;
    acceptedVersions?: readonly string[];
    requiredScopes?: readonly string[];
    metadata?: Readonly<Record<string, unknown>>;
};
export type ToolDependencyProbe = {
    dependencyId?: string;
    available?: boolean;
    version?: string;
    resolvedPath?: string;
    blocked?: boolean;
    conflictWith?: readonly string[];
    observedAt?: string;
    detail?: string;
    metadata?: Readonly<Record<string, unknown>>;
};
export type ToolDependencyManagerContext = {
    runtimeId?: string;
    invocationId?: string;
    dryRun?: boolean;
    guard?: {
        accepted: boolean;
        reason?: string;
    };
    allowedScopes?: readonly string[];
    auditMetadata?: Readonly<Record<string, unknown>>;
};
export type ToolDependencyManagerRequest = {
    toolId?: string;
    declarations?: readonly ToolDependencyDeclaration[];
    probes?: readonly ToolDependencyProbe[];
    context?: ToolDependencyManagerContext;
};
export type ToolDependencyManagerErrorCode = "MISSING_TOOL_ID" | "MISSING_DECLARATIONS" | "INVALID_DEPENDENCY_ID" | "DUPLICATE_DEPENDENCY_ID" | "REAL_DEPENDENCY_RESOLUTION_NOT_ALLOWED" | "GOVERNANCE_REJECTED" | "SCOPE_DENIED";
export type ToolDependencyManagerError = {
    code: ToolDependencyManagerErrorCode;
    message: string;
    boundary: ToolDependencyBoundary;
    safeForRuntimeInspection: true;
    internalDetailExposed: false;
};
export type ToolDependencyResolution = {
    dependencyId: string;
    kind: ToolDependencyKind;
    displayName: string;
    required: boolean;
    status: ToolDependencyStatus;
    requestedVersion?: string;
    observedVersion?: string;
    resolvedPath?: string;
    acceptedVersions: readonly string[];
    requiredScopes: readonly string[];
    missingScopes: readonly string[];
    conflictWith: readonly string[];
    reasons: readonly string[];
    observedAt?: string;
    metadata: Readonly<Record<string, unknown>>;
};
export type ToolDependencyReport = {
    toolId: string;
    runtimeId?: string;
    invocationId?: string;
    status: ToolDependencyStatus;
    resolutions: readonly ToolDependencyResolution[];
    summary: {
        total: number;
        satisfied: number;
        missing: number;
        stale: number;
        conflict: number;
        blocked: number;
        unknown: number;
        requiredUnsatisfied: number;
    };
    dryRun: true;
    unsafeSideEffects: false;
    audit: {
        event: "agentCore.basicToolLayer.toolDependency.manager.resolved";
        metadata: Readonly<Record<string, unknown>>;
    };
};
export type ToolDependencyManagerResult = {
    ok: true;
    report: ToolDependencyReport;
    events: readonly string[];
} | {
    ok: false;
    error: ToolDependencyManagerError;
    events: readonly string[];
};
export declare const toolDependencyManagerDescriptor: {
    readonly layer: "agent_executionEngine.basic_toolLayer.toolDependency";
    readonly capability: "dependency-management";
    readonly defaultDryRun: true;
    readonly unsafeSideEffects: false;
};
export declare function manageToolDependencies(request?: ToolDependencyManagerRequest): ToolDependencyManagerResult;
