import type { DefineComponent } from 'vue'; export interface ToolcallComponentProps { status: 'idle' | 'executing' | 'complete' | 'error'; args: TArgs; result?: TResult; error?: Error; respond?: (response: TResponse) => void; agentState?: Record; } interface NonInteractiveToolcallConfig { name: string; description?: string; parameters?: Array<{ name: string; type: string; required?: boolean; }>; handler: (args: TArgs, backendResult?: any) => Promise; component: DefineComponent>; subscribeKey?: (props: ToolcallComponentProps) => string | undefined; } interface InteractiveToolcallConfig { name: string; description: string; parameters?: Array<{ name: string; type: string; required?: boolean; }>; component: DefineComponent>; handler?: never; subscribeKey?: (props: ToolcallComponentProps) => string | undefined; } export type AgentToolcallConfig = NonInteractiveToolcallConfig | InteractiveToolcallConfig; export declare function isNonInteractive(config: AgentToolcallConfig): config is NonInteractiveToolcallConfig; export interface AgentToolcallRegistry { [ToolcallName: string]: AgentToolcallConfig; } export interface AgentToolcallState { status: ToolcallComponentProps['status']; args?: TArgs; result?: TResult; error?: Error; } export declare const isNonInteractiveConfig: (cfg: AgentToolcallConfig) => cfg is AgentToolcallConfig & { handler: Function; }; export {};