import type { AgentEndEvent } from '@earendil-works/pi-coding-agent'; import type { WaggleConfig, WaggleConsensusCheckResult } from '@openwaggle/waggle-core'; interface UnresolvedToolCall { readonly id: string; readonly name: string; } export interface PiWaggleTurnSummary { readonly responseText: string; readonly hasToolCalls: boolean; readonly unresolvedToolCalls: readonly UnresolvedToolCall[]; readonly aborted: boolean; readonly terminalError?: string; } export interface PiWaggleStopPolicyState { readonly consecutiveErrorTurns: number; readonly successfulTurnCount: number; readonly lastAssistantTexts: readonly [string, string]; } export interface PiWaggleStopPolicyDecision { readonly continue: boolean; readonly state: PiWaggleStopPolicyState; readonly turnSucceeded: boolean; readonly consensus?: WaggleConsensusCheckResult; readonly stop?: { readonly classification: 'complete' | 'stopped'; readonly reason: string; }; } export declare function createPiWaggleStopPolicyState(): PiWaggleStopPolicyState; export declare function summarizePiWaggleTurnMessages(messages: readonly AgentEndEvent['messages'][number][]): PiWaggleTurnSummary; export declare function evaluatePiWaggleStopPolicy(input: { readonly config: WaggleConfig; readonly turnNumber: number; readonly summary: PiWaggleTurnSummary; readonly state: PiWaggleStopPolicyState; readonly agentLabel: string; }): PiWaggleStopPolicyDecision; export {};