import type { PluginInput } from "@opencode-ai/plugin"; export interface TuiStatusOptions { enabled?: boolean; showAgentNotifications?: boolean; showModeChanges?: boolean; toastDuration?: number; trackMetrics?: boolean; } type ToastVariant = "info" | "success" | "warning" | "error"; interface ToastOptions { title?: string; message: string; variant: ToastVariant; duration?: number; } interface AgentStatus { name: string; status: "running" | "completed" | "failed"; startTime: number; endTime?: number; task?: string; callID?: string; } interface AgentMetrics { totalCalls: number; successCount: number; failureCount: number; totalDurationMs: number; avgDurationMs: number; minDurationMs: number; maxDurationMs: number; lastCallTime: number; } interface SessionMetrics { sessionStartTime: number; totalAgentCalls: number; totalSuccesses: number; totalFailures: number; agentMetrics: Map; } export declare function createTuiStatusHook(ctx: PluginInput, options?: TuiStatusOptions): { showToast: (opts: ToastOptions) => Promise; notifyAgentStarted: (agentName: string, task?: string, callID?: string) => Promise; notifyAgentCompleted: (agentName: string, success?: boolean, callID?: string) => Promise; notifyModeChange: (mode: string, active: boolean) => Promise; notifyPhaseChange: (phase: string, current: number, total: number) => Promise; notifyIteration: (mode: string, current: number, max: number) => Promise; getActiveAgents: () => AgentStatus[]; getMetrics: () => { session: Omit; agents: Record; }; getMetricsSummary: () => string; resetMetrics: () => void; "tool.execute.before": (input: { tool: string; sessionID: string; callID: string; }, output: { args: Record; }) => Promise; "tool.execute.after": (input: { tool: string; sessionID: string; callID: string; }, output: { title: string; output: string; metadata: any; }) => Promise; }; export {};