import { EmbedBuilder, ActionRowBuilder, ButtonBuilder } from "discord.js"; export type OutputMode = "low" | "medium" | "high"; export interface ToolDisplaySpec { id: string; kind: string; icon: string; title: string; description: string | null; command: string | null; inputContent: string | null; outputSummary: string | null; outputContent: string | null; diffStats: { added: number; removed: number; } | null; viewerLinks?: { file?: string; diff?: string; }; outputViewerLink?: string; outputFallbackContent?: string; status: string; isNoise: boolean; isHidden: boolean; } export interface PlanEntry { content: string; status: string; priority: string; } export interface ToolCardSnapshot { specs: ToolDisplaySpec[]; planEntries?: PlanEntry[]; usage?: { tokensUsed?: number; contextSize?: number; cost?: number; }; totalVisible: number; completedVisible: number; allComplete: boolean; } export interface ToolCardResult { embeds: EmbedBuilder[]; components: ActionRowBuilder[]; } export declare function renderSpecSection(spec: ToolDisplaySpec, mode: OutputMode): string; export declare function splitToolCardDescription(text: string): string[]; export declare function renderToolCard(snapshot: ToolCardSnapshot, mode: OutputMode, sessionId?: string, thoughtViewerLink?: string): ToolCardResult; interface UsageData { tokensUsed?: number; contextSize?: number; cost?: number; duration?: number; } export declare function renderUsageEmbed(usage: UsageData, mode: OutputMode): EmbedBuilder; interface PermissionRequest { toolName: string; command?: string; description?: string; } interface LegacyToolCallMeta { id: string; name: string; kind?: string; status?: string; content?: unknown; rawInput?: unknown; viewerLinks?: { file?: string; diff?: string; }; viewerFilePath?: string; displaySummary?: string; displayTitle?: string; displayKind?: string; } type LegacyVerbosity = "low" | "medium" | "high"; /** @deprecated Use renderToolCard instead */ export declare function formatToolCall(tool: LegacyToolCallMeta, verbosity?: LegacyVerbosity): string; /** @deprecated Use renderToolCard instead */ export declare function formatToolUpdate(update: LegacyToolCallMeta, verbosity?: LegacyVerbosity): string; /** @deprecated Use renderToolCard plan rendering instead */ export declare function formatPlan(entries: PlanEntry[], verbosity?: LegacyVerbosity): string; /** @deprecated Use renderUsageEmbed instead */ export declare function formatUsage(usage: { tokensUsed?: number; contextSize?: number; cost?: number; }, verbosity?: LegacyVerbosity): string; /** @deprecated Use splitToolCardDescription instead */ export declare function splitMessage(text: string, maxLength?: number): string[]; export declare function renderPermissionEmbed(request: PermissionRequest, sessionId: string, callbackKey: string): { embeds: EmbedBuilder[]; components: ActionRowBuilder[]; }; export {};