import type { AgentTool, AgentToolContext, AgentToolResult, AgentToolUpdateCallback, ToolTier } from "@oh-my-pi/pi-agent-core"; import type { ToolSession } from "../../tools/index.js"; import type { Goal, GoalToolDetails } from "@oh-my-pi/pi-tui/tools/goal"; declare const goalSchema: import("@oh-my-pi/omptype").FluentType<{ objective?: string | undefined; op: "complete" | "create" | "drop" | "get" | "resume"; token_budget?: number | undefined; }, { objective?: string | undefined; op: "complete" | "create" | "drop" | "get" | "resume"; token_budget?: number | undefined; }>; export type GoalToolInput = typeof goalSchema.infer; export interface GoalToolResponse { goal: Goal | null; remainingTokens: number | null; completionBudgetReport: string | null; } export declare function buildGoalToolResponse(goal: Goal | null | undefined, options?: { includeCompletionReport?: boolean; }): GoalToolResponse; export declare class GoalTool implements AgentTool { #private; readonly name = "goal"; /** Goal ops touch only session state: `get` reads it; the rest change the goal, so `always-ask` still prompts. */ readonly approval: (args: unknown) => ToolTier; readonly label = "Goal"; readonly description: string; readonly parameters: import("@oh-my-pi/omptype").FluentType<{ objective?: string | undefined; op: "complete" | "create" | "drop" | "get" | "resume"; token_budget?: number | undefined; }, { objective?: string | undefined; op: "complete" | "create" | "drop" | "get" | "resume"; token_budget?: number | undefined; }>; readonly strict = true; readonly intent: "omit"; constructor(session: ToolSession); execute(_toolCallId: string, params: GoalToolInput, _signal?: AbortSignal, _onUpdate?: AgentToolUpdateCallback, _context?: AgentToolContext): Promise>; } export {};