import type { Context as PiContext, Model } from '../../provider/pi-ai-types.js'; import type { MiniAgentEvent } from '../subagent/agent-events.js'; import type { Message } from '../session/session-jsonl.js'; import type { Tool } from '../tools/tool-types.js'; import type { CompactHookRegistry } from './compact-hooks.js'; import type { ContextPruningSettings } from '../../context/pruning.js'; import type { AgentLoopMutableState } from './agent-loop-state.js'; import type { AgentLoopLlmUsage } from './agent-loop-types.js'; export declare function shouldIncludeThinkingInBudget(currentMessages: Message[], modelDef: Model): boolean; export interface ProviderToolDeclaration { name: string; description: string; parameters: Record; } export declare function buildProviderToolDeclarations(toolsForRun: Tool[]): ProviderToolDeclaration[]; export declare function selectMessagesForModel(params: { pendingToolResultFollowUp: boolean; currentMessages: Message[]; prunedMessages: Message[]; droppedMessages: Message[]; compactionSummary?: Message; promptPruneCompactionSucceeded: boolean; }): Message[]; export declare function summarizeDroppedMessages(messages: Message[]): { savedChars: number; savedTokens: number; }; export type LoopControlSignal = 'continue' | 'break' | 'retry'; export interface PrepareTurnContextResult { messagesForModel: Message[]; toolsForRun: Tool[]; piContext: PiContext; control: LoopControlSignal; promptCacheTelemetry: { prefixChecks: number; prefixChanges: number; toolOrderChecks: number; toolOrderChanges: number; }; updatedSnapshots: { previousPrefixSnapshot: Message[] | null; previousToolNames: string[] | null; }; } export interface PrepareTurnContextParams { state: AgentLoopMutableState; currentMessages: Message[]; systemPrompt: string; systemPromptParts?: { stable: string; dynamic: string; }; effectiveContextTokens: number; charsPerUnit: number; modelDef: Model; getToolsForRun: () => Tool[]; sessionKey: string; runId: string; prepareCompaction: (params: { messages: Message[]; sessionKey: string; runId: string; forceCompaction?: boolean; includeThinking?: boolean; abortSignal?: AbortSignal; }) => Promise<{ summary?: string; summaryMessage?: Message; messages?: Message[]; droppedMessages?: number; checkpointOutline?: string[]; usage?: AgentLoopLlmUsage[]; }>; compactHooks?: CompactHookRegistry; persistCurrentMessages: (messages?: Message[]) => Promise; push: (event: MiniAgentEvent) => void; abortSignal: AbortSignal; pruningSettings?: Partial; hardCapMessageCount: number; hardCapTotalTokens: number; previousPrefixSnapshot: Message[] | null; previousToolNames: string[] | null; prefixDebugEnabled: boolean; } export declare function prepareTurnContext(params: PrepareTurnContextParams): Promise; //# sourceMappingURL=agent-loop-context-prep.d.ts.map