import { type ChatOpenAI } from '@langchain/openai';
import { type AIActionMetadata } from '../../../../../../src/lib/llm/openai/types';
import type { BaseCallbackHandler } from '@langchain/core/callbacks/base';
/**
 * Uses LLM to extract structured data from a message according to a provided schema.
 * The function follows these steps:
 * 1. Formats prompt with schema and message
 * 2. Runs LLM chain with structured output parsing
 * 3. Validates and processes the result
 *
 * @example
 * const result = await parseStructuredDataWithLLM({
 *   model,
 *   message: "Patient John Doe, age 45, scheduled for tomorrow at 2pm",
 *   schema: { name: "string", age: "number", appointmentTime: "string" },
 *   metadata: { ... }
 * })
 * // Returns: {
 * //   data: { name: "John Doe", age: 45, appointmentTime: "2pm tomorrow" },
 * //   confidenceLevel: 85,
 * //   explanation: "..."
 * // }
 */
export declare const parseStructuredDataWithLLM: ({ model, message, schema, instructions, metadata, callbacks, }: {
    model: ChatOpenAI;
    message: string;
    schema: Record<string, string>;
    instructions?: string;
    metadata: AIActionMetadata;
    callbacks?: BaseCallbackHandler[];
}) => Promise<{
    data: Record<string, any>;
    confidenceLevel: number;
    explanation: string;
}>;
