/**
 * Configuration for form-level AI assistant
 */
export interface AiFormAssistantConfig {
    /**
     * Custom system prompt generator
     * @param formData - The full form data object
     * @param metaData - Optional metadata containing field labels and other information
     * @returns The system prompt to send to the AI
     */
    systemPrompt?: (formData: Record<string, unknown>, metaData?: Record<string, unknown>) => string;
    /**
     * Custom API endpoint for AI chat
     * @default "/api/nlp/chat/stream"
     */
    apiEndpoint?: string;
    /**
     * Maximum number of suggestions to request
     * @default 5
     */
    maxSuggestions?: number;
    /**
     * Binding context for prompt template selection from the backend.
     * When specified, the backend will automatically load the appropriate
     * system prompt template based on this context.
     *
     * If both `promptBindingContext` and `systemPrompt` are provided,
     * you should set `includeSystemMessageFromTemplate: false` to avoid
     * sending duplicate system prompts.
     *
     * @example "progress_report_assistant"
     * @example "diagnostic_report_assistant"
     * @see https://confluence.mesalvo.com/display/DEV/Prompt+Templates
     */
    promptBindingContext?: string;
    /**
     * Whether to include system message from prompt template.
     * Only relevant when `promptBindingContext` is set.
     * @default true
     */
    includeSystemMessageFromTemplate?: boolean;
    /**
     * Request timeout in milliseconds.
     * Increase this when the form is large or the AI needs more time to process.
     * @default 120000 (2 minutes)
     */
    timeoutMs?: number;
}
/**
 * A single suggestion from the AI for a form field
 */
export interface FormSuggestion {
    /**
     * Markdown-formatted explanation of the suggestion
     */
    message: string;
    /**
     * Field path (e.g., "subjective[0].text" or "assessment")
     */
    field: string;
    /**
     * The desired new value for the field
     */
    desiredOutput: unknown;
}
//# sourceMappingURL=types.d.ts.map