import type { MastraDBMessage } from '../state/types.js'; import type { AIV5Type } from '../types.js'; /** * StepContentExtractor - Handles extraction of step content from response messages * * This class encapsulates the complex logic for: * - Finding step boundaries by looking for step-start markers * - Handling special cases like -1 (last step) and tool-only steps * - Converting UI messages to model messages and extracting content */ export declare class StepContentExtractor { /** * Extract content for a specific step number from UI messages * * @param uiMessages - Array of AI SDK V5 UI messages * @param stepNumber - Step number to extract (1-indexed, or -1 for last step) * @param stepContentFn - Function to convert model messages to step content * @returns Step content array */ static extractStepContent(uiMessages: AIV5Type.UIMessage[], stepNumber: number, stepContentFn: (message?: AIV5Type.ModelMessage) => AIV5Type.StepResult['content']): AIV5Type.StepResult['content']; /** * Extract the last step content (stepNumber === -1) */ private static extractLastStep; /** * Extract the first step content (stepNumber === 1) */ private static extractFirstStep; /** * Extract content for steps 2+ (between step-start markers) */ private static extractMiddleStep; /** * Convert UI message parts to step content */ private static convertPartsToContent; /** * Convert a single model message content to step result content * * This handles: * - Tool results: adding input field from DB messages * - Files: converting to GeneratedFile format * - Images: converting to file format with proper media type * - Other content: passed through as-is * * @param message - Model message to convert (or undefined to use latest) * @param dbMessages - Database messages for looking up tool call args * @param getLatestMessage - Function to get the latest model message if not provided */ static convertToStepContent(message: AIV5Type.ModelMessage | undefined, dbMessages: MastraDBMessage[], getLatestMessage: () => AIV5Type.ModelMessage | undefined): AIV5Type.StepResult['content']; } //# sourceMappingURL=step-content.d.ts.map