import type { ItemId, ProviderConfig, Turn } from "@best-agent/protocol";
import { type ConversationMessage, type ProviderDecisionOutput, type ProviderToolOption } from "../../provider/model-provider.js";
import type { CompletedProviderToolCall, ToolResumeContext } from "../checkpoint-codec.js";
import type { RequiredToolConstraint } from "./tool-constraint-types.js";
import type { ProviderToolLoopRuntime } from "./provider-tool-loop-runtime.js";
import type { ProviderTurnInvokeContext } from "./provider-turn-budget.js";
export type ProviderToolFollowUpRunnerResult = {
    kind: "response";
    responseText: string;
} | {
    decision: ProviderDecisionOutput;
    followUpDecisionSystemPrompt?: string;
    followUpMessages: ConversationMessage[];
    invokeContext: ProviderTurnInvokeContext;
    kind: "decision";
    resolvePreviewToolCallId: (providerToolCallId?: string) => ItemId | undefined;
};
export declare function runProviderToolFollowUp(input: {
    advancedPhaseEscalationLevel: number;
    completedToolCalls: CompletedProviderToolCall[];
    consumedToolStepCount: number;
    context: ToolResumeContext;
    followUpDecisionSystemPrompt?: string;
    followUpMessages: ConversationMessage[];
    followUpRouteConfig?: ProviderConfig;
    followUpVisibleTools: ProviderToolOption[];
    invokeContext: ProviderTurnInvokeContext;
    pendingToolHookContextPrompt?: string;
    runtime: ProviderToolLoopRuntime;
    turn: Turn;
    unresolvedRequiredToolConstraint?: RequiredToolConstraint;
}): Promise<ProviderToolFollowUpRunnerResult>;
//# sourceMappingURL=provider-tool-follow-up-runner.d.ts.map