import type { Clark } from "../state-machine/clark-fsm.js";
import type { ToolSet, StopCondition as BaseStopCondition } from "ai";
/**
 * A predicate that determines whether to stop the agent's execution based on the provided steps.
 */
export type StopCondition<TOOLS extends ToolSet> = BaseStopCondition<TOOLS>;
/** A stop condition that checks if the last step used a specific tool and got a non-error result.
 * (Failed tool calls don't go into the toolResults array.)
 *
 * @param toolName - name of the tool to condition on
 * @param failureLimit - stop the loop if the tool has been called unsuccessfully
 */
export declare function hasToolSuccess(toolName: string, maxAttempts?: number): StopCondition<any>;
export declare function isAwaitingUser(clark: Clark): StopCondition<any>;
export declare const needsPermissionToExecute: (clark: Clark) => StopCondition<any>;
//# sourceMappingURL=stop-condition.d.ts.map