import type { AgentToolResult, ExtensionContext, Theme } from "@earendil-works/pi-coding-agent"; import type { SubagentRunRequest, SubagentStatus } from "./contracts.js"; type SubagentRenderArgs = Partial & { id?: string; }; type ProgressComponent = ReturnType; export type SubagentRenderState = { subagentSpinner?: ReturnType; subagentStatus?: SubagentStatus; subagentProgressComponent?: ProgressComponent; subagentProgressFrozenAt?: number; }; export declare function formatSubagentPreview(args: Partial): string; export declare function renderSubagentCall(args: Partial, context?: { state?: SubagentRenderState; isError?: boolean; }): { render(width: number): string[]; invalidate(): void; }; export declare function subagentProgressBlock(status: SubagentStatus, args: SubagentRenderArgs, theme: Theme, freezeAt?: number): { id: string; update(next: SubagentStatus, nextTheme: Theme, nextFreezeAt?: number): void; setExpanded(value: boolean): void; render(width: number): string[]; invalidate(): void; }; export declare function renderSubagentResult(result: AgentToolResult, options: { isPartial: boolean; expanded: boolean; }, theme: Theme, context: { args: SubagentRenderArgs; state: SubagentRenderState; invalidate(): void; isError?: boolean; }): { render(width: number): string[]; invalidate(): void; }; export declare function createSubagentBackgroundWidget(): { start(next: ExtensionContext): void; update(status: Readonly, request: Readonly): void; dispose(): void; }; export declare function renderSubagentInspectCall(args: { id?: string; }, theme: Theme): { render(width: number): string[]; invalidate(): void; }; export declare function renderSubagentInspectResult(result: AgentToolResult, options: { expanded: boolean; }, theme: Theme, args: { id?: string; }): { render(width: number): string[]; invalidate(): void; }; export declare function renderSubagentControlCall(name: string, args: { id: string; message?: string; }, theme: Theme): { render(width: number): string[]; invalidate(): void; }; export declare function renderSubagentControlResult(result: AgentToolResult, theme: Theme): { render(width: number): string[]; invalidate(): void; }; export {};