import type { ToolInputValue, ToolResultItem } from "@best-agent/protocol";
import type { ConversationMessage, ProviderToolOption } from "../../provider/model-provider.js";
import type { CompletedProviderToolCall, PendingProviderToolCall, ToolResumeContext } from "../checkpoint-codec.js";
import type { RequiredToolConstraint } from "./tool-constraint-types.js";
export type ProviderToolLoopFollowUpState = {
    completedToolCalls: CompletedProviderToolCall[];
    consumedToolStepCount: number;
    followUpMessages: ConversationMessage[];
    followUpVisibleTools: ProviderToolOption[];
    nextExecutionFailureCount: number;
    nextRepairAttempt: number;
    nextToolCall?: PendingProviderToolCall;
    remainingToolCalls: PendingProviderToolCall[];
    unresolvedRequiredToolConstraint?: RequiredToolConstraint;
};
export declare function buildProviderToolLoopFollowUpState(input: {
    context: ToolResumeContext;
    currentToolResult?: ToolResultItem;
    renderToolInputForProviderHistory: (toolName: string, input: ToolInputValue) => ToolInputValue;
    toolInputStableDigest?: string;
    toolOutput: string;
    toolReplayPolicyForFollowUp: (toolName: string) => CompletedProviderToolCall["replayPolicy"];
}): ProviderToolLoopFollowUpState;
//# sourceMappingURL=provider-tool-follow-up-state.d.ts.map