export type BasicToolInvocationFamily = "code" | "shell" | "git" | "mcp" | "computeruse" | "office" | "omni" | "search" | "skill" | "custom";
export type BasicToolInvocationRisk = "read" | "write" | "process" | "network" | "host-control";
export type BasicToolInvocationMode = "dry-run" | "tap-handoff";
export type BasicToolStrategyBoundary = "input" | "contract" | "governance" | "scope";
export type BasicToolStrategyGate = {
    accepted: boolean;
    reason?: string;
};
export type BasicToolStrategyContext = {
    runtimeId?: string;
    invocationId?: string;
    dryRun?: boolean;
    requestedScopes?: readonly string[];
    allowedScopes?: readonly string[];
    contract?: BasicToolStrategyGate;
    governance?: BasicToolStrategyGate;
    auditMetadata?: Readonly<Record<string, unknown>>;
};
export type BasicToolStrategyRequest = {
    context?: BasicToolStrategyContext;
    toolId?: string;
    family?: BasicToolInvocationFamily;
    risks?: readonly BasicToolInvocationRisk[];
    preferredMode?: BasicToolInvocationMode;
};
export type BasicToolStrategyErrorCode = "MISSING_RUNTIME_ID" | "MISSING_TOOL_ID" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "SCOPE_DENIED" | "REAL_EXECUTION_BLOCKED";
export type BasicToolStrategyError = {
    code: BasicToolStrategyErrorCode;
    message: string;
    boundary: BasicToolStrategyBoundary;
    publicSafe: true;
};
export type BasicToolInvocationStrategy = {
    strategyId: string;
    toolId: string;
    family: BasicToolInvocationFamily;
    mode: BasicToolInvocationMode;
    dispatch: "dry-run";
    requiresTapApproval: boolean;
    governancePreconditions: readonly string[];
    acceptedScopes: readonly string[];
    risks: readonly BasicToolInvocationRisk[];
    dryRun: true;
    unsafeSideEffects: false;
    audit: {
        event: "agentCore.basicTool.invocationStrategy.selected";
        runtimeId: string;
        invocationId: string;
        metadata: Readonly<Record<string, unknown>>;
    };
};
export type BasicToolStrategyResult = {
    ok: true;
    strategy: BasicToolInvocationStrategy;
    events: readonly string[];
} | {
    ok: false;
    error: BasicToolStrategyError;
    events: readonly string[];
};
export declare const basicToolInvocationStrategyDescriptor: {
    readonly capability: "select-basic-tool-invocation-strategy";
    readonly layer: "agent_executionEngine.basic_toolLayer.invocationStrategy";
    readonly defaultMode: "dry-run";
    readonly tapHandoffMode: "tap-handoff";
    readonly unsafeSideEffects: false;
};
export declare function selectBasicToolInvocationStrategy(request?: BasicToolStrategyRequest): BasicToolStrategyResult;
