/**
 * Answer Question Tool - Process user answers and return remaining questions
 */
import { z } from 'zod';
import { DotAI } from '../core/index';
import { Logger } from '../core/error-handling';
interface QuestionValidation {
    required?: boolean;
    message?: string;
    min?: number;
    max?: number;
    pattern?: string;
    options?: string[];
}
interface Question {
    id?: string;
    question: string;
    type?: 'text' | 'number' | 'boolean' | 'select' | 'multiSelect';
    validation?: QuestionValidation;
    answer?: unknown;
    options?: string[];
}
export declare const ANSWERQUESTION_TOOL_NAME = "answerQuestion";
export declare const ANSWERQUESTION_TOOL_DESCRIPTION = "Process user answers and return remaining questions or completion status. For open stage, use \"open\" as the answer key.";
export declare const ANSWERQUESTION_TOOL_INPUT_SCHEMA: {
    solutionId: z.ZodString;
    stage: z.ZodEnum<{
        required: "required";
        open: "open";
        basic: "basic";
        advanced: "advanced";
    }>;
    answers: z.ZodRecord<z.ZodString, z.ZodAny>;
    interaction_id: z.ZodOptional<z.ZodString>;
};
/**
 * Validate answer against question schema
 */
export declare function validateAnswer(answer: unknown, question: Question): string | null;
/**
 * Direct MCP tool handler for answerQuestion functionality
 */
export declare function handleAnswerQuestionTool(args: {
    solutionId: string;
    stage: 'required' | 'basic' | 'advanced' | 'open';
    answers: Record<string, unknown>;
    interaction_id?: string;
}, dotAI: DotAI, logger: Logger, requestId: string): Promise<{
    content: {
        type: 'text';
        text: string;
    }[];
}>;
export {};
//# sourceMappingURL=answer-question.d.ts.map