import type { MastraDBMessage, MastraMessageV1, MessageSource, MemoryInfo } from '../state/types.js';
import type { MessageInput } from '../types.js';
/**
 * Context required for input conversion functions.
 * This is passed from MessageList to provide access to instance-specific utilities.
 */
export interface InputConversionContext {
    memoryInfo: MemoryInfo | null;
    newMessageId: () => string;
    generateCreatedAt: (messageSource: MessageSource, start?: unknown) => Date;
    /** Messages array for looking up tool call args */
    dbMessages: MastraDBMessage[];
}
/**
 * Convert any supported message input format to MastraDBMessage.
 * Routes to the appropriate converter based on message type detection.
 */
export declare function inputToMastraDBMessage(message: MessageInput, messageSource: MessageSource, context: InputConversionContext): MastraDBMessage;
/**
 * Convert MastraMessageV1 format to MastraDBMessage.
 */
export declare function mastraMessageV1ToMastraDBMessage(message: MastraMessageV1, messageSource: MessageSource, context: InputConversionContext): MastraDBMessage;
/**
 * Hydrate a MastraDBMessage with missing fields (id, createdAt, threadId, resourceId).
 * Also fixes toolInvocations with empty args by looking in the parts array.
 */
export declare function hydrateMastraDBMessageFields(message: MastraDBMessage, context: InputConversionContext): MastraDBMessage;
//# sourceMappingURL=input-converter.d.ts.map