/**
 * Wait tool — explicit no-op for models that don't know how to end a turn.
 *
 * Some models (notably Kimi) invent useless `bash` calls to simulate waiting.
 * This tool gives them a sanctioned no-op action that cleanly ends the turn.
 */
import { type Static } from "@sinclair/typebox";
import type { ToolDefinition } from "../extensions/types.js";
/** Minimal shape of a running background agent (avoids importing from subagent.ts to prevent circular deps). */
export interface WaitAgentInfo {
    agentId: string;
    agentType: string;
    taskSummary: string;
}
export interface WaitToolDetails {
    reason: string | undefined;
    runningAgents: readonly WaitAgentInfo[];
}
export interface WaitToolOptions {
    /** Returns currently running background agents. Injected by the factory to avoid circular imports. */
    getRunningAgents?: () => readonly WaitAgentInfo[];
}
declare const waitSchema: import("@sinclair/typebox").TObject<{
    reason: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
}>;
export type WaitToolInput = Static<typeof waitSchema>;
export declare function formatWaitCall(args: {
    reason?: string;
} | undefined, theme: any): string;
export declare function formatWaitResult(result: {
    content: Array<{
        type: string;
        text?: string;
    }>;
    details?: WaitToolDetails;
}, theme: any): string;
export declare const waitToolDefinition: ToolDefinition<typeof waitSchema, WaitToolDetails | undefined>;
export declare function createWaitToolDefinition(options?: WaitToolOptions): ToolDefinition<typeof waitSchema, WaitToolDetails | undefined>;
export {};
//# sourceMappingURL=wait.d.ts.map