import type { ItemId, SandboxProfile, Turn } from "@best-agent/protocol";
import type { AgentProfile } from "../../agent/profile-registry.js";
import type { PreparedToolInvocation, RuntimeToolDefinition } from "../../tool/registry.js";
import type { ExecuteToolInvocationOptions } from "../agent-runtime-tool-execution-types.js";
import type { ToolResumeContext } from "../checkpoint-codec.js";
import type { PersistTerminalToolFailure, ToolExecutionRuntime, ToolShellDebugBase } from "./tool-execution-types.js";
export declare function authorizeToolExecutionFlow(input: {
    options: ExecuteToolInvocationOptions;
    persistTerminalToolFailure: PersistTerminalToolFailure;
    prepared: PreparedToolInvocation;
    preparedToolResumeContext: ToolResumeContext;
    previewCallId?: ItemId;
    profile: AgentProfile;
    runtime: ToolExecutionRuntime;
    shellDebugBase?: ToolShellDebugBase;
    threadMode: string;
    toolName: string;
    toolResumeContext: ToolResumeContext;
    turn: Turn;
    authorizationTurn: Turn;
}): Promise<{
    kind: "authorized";
    executionSandboxProfile?: SandboxProfile;
    toolCallId: ItemId;
    toolDefinition: RuntimeToolDefinition;
    webSearchBudget?: {
        currentCount: number;
        limit: number;
        scope: "workflow";
    };
} | {
    kind: "blocked";
    output: string;
} | {
    kind: "terminal-failure";
    output: string;
}>;
//# sourceMappingURL=tool-execution-authorization-flow.d.ts.map