import type { SourceData } from '../AISource/index.js'; import type { ToolCallPart } from '../AIToolCall/index.js'; export type AIToolRunStatus = 'ready' | 'running' | 'paused' | 'completed' | 'error'; export interface AIToolRunProgress { value: number; label?: string; meta?: string; } export type AIToolRunSource = (SourceData & { id: string; kind?: 'link'; }) | { id: string; kind: 'reference'; title: string; description?: string; url?: never; favicon?: never; siteName?: never; }; export interface AIToolRunContext { id: string; label: string; } export interface AIToolRunTechnicalDetails { label?: string; toolCalls: readonly ToolCallPart[]; } interface AIToolRunToolCallSummaryBase { toolCallId: string; toolName: string; } export type AIToolRunToolCallSummary = (AIToolRunToolCallSummaryBase & { status: 'pending'; error?: never; }) | (AIToolRunToolCallSummaryBase & { status: 'running'; error?: never; }) | (AIToolRunToolCallSummaryBase & { status: 'success'; error?: never; }) | (AIToolRunToolCallSummaryBase & { status: 'error'; error: string; }); type AIToolRunSummaryAt = Extract; interface AIToolRunStepBase { toolCall: AIToolRunSummaryAt; title?: string; description?: string; context?: AIToolRunContext; technicalDetails?: AIToolRunTechnicalDetails; } export type AIToolRunStep = (AIToolRunStepBase<'pending'> & { progress?: never; sourceIds?: never; currentSourceId?: never; durationMs?: never; }) | (AIToolRunStepBase<'running'> & { progress?: AIToolRunProgress; sourceIds?: readonly string[]; currentSourceId?: string; durationMs?: number; }) | (AIToolRunStepBase<'success'> & { durationMs?: number; sourceIds?: readonly string[]; progress?: never; currentSourceId?: never; }) | (AIToolRunStepBase<'error'> & { sourceIds?: readonly string[]; progress?: never; currentSourceId?: never; durationMs?: number; }); export type AIToolRunActionKind = 'start' | 'pause' | 'resume' | 'retry' | 'dismiss' | 'custom'; interface AIToolRunActionBase { id: string; disabled?: boolean; loading?: boolean; } export type AIToolRunAction = (AIToolRunActionBase & { kind: Exclude; label?: string; }) | (AIToolRunActionBase & { kind: 'custom'; label: string; }); interface AIToolRunSnapshotBase { runId: string; durationMs?: number; header: { title: string; description?: string; metadata?: readonly { label: string; value: string; }[]; }; steps: readonly AIToolRunStep[]; sources?: readonly AIToolRunSource[]; actions?: readonly AIToolRunAction[]; } export type AIToolRunSnapshot = (AIToolRunSnapshotBase & { status: 'ready' | 'completed'; progress?: never; activeStepId?: never; error?: never; }) | (AIToolRunSnapshotBase & { status: 'running' | 'paused'; progress?: AIToolRunProgress; activeStepId?: string; error?: never; }) | (AIToolRunSnapshotBase & { status: 'error'; progress?: AIToolRunProgress; activeStepId?: never; error: { message: string; }; }); export interface AIToolRunActionEvent { runId: string; actionId: string; kind: AIToolRunActionKind; } type ValidationIssue = { path: string; message: string; }; export type AIToolRunValidationResult = { valid: true; value: AIToolRunSnapshot; } | { valid: false; issues: readonly ValidationIssue[]; }; export declare function validateAIToolRunSnapshot(value: unknown): AIToolRunValidationResult; export {};