import type { QuestionAnswer, QuestionnaireResult, QuestionParams } from "./types.ts";
export declare const DECLINE_MESSAGE = "User declined to answer questions";
export declare const ENVELOPE_PREFIX = "User has answered your questions:";
export declare const ENVELOPE_SUFFIX = "You can now continue with the user's answers in mind.";
/**
 * Map a `QuestionnaireResult` (or null/cancelled) to the LLM-facing tool envelope.
 * Pure of `(result, params)`; cancelled and "no segments" both fall to `DECLINE_MESSAGE`
 * so the model sees a single canonical "didn't answer" signal regardless of why.
 */
export declare function buildQuestionnaireResponse(result: QuestionnaireResult | null | undefined, params: QuestionParams): {
    content: {
        type: "text";
        text: string;
    }[];
    details: QuestionnaireResult;
};
/**
 * Format a single answer segment for the envelope. Pure of `a`. The `"Q"="A"` shape and
 * the optional `selected preview:` / `user notes:` suffixes are pinned by envelope tests.
 */
export declare function buildAnswerSegment(a: QuestionAnswer): string;
export declare function buildToolResult(text: string, details: QuestionnaireResult): {
    content: {
        type: "text";
        text: string;
    }[];
    details: QuestionnaireResult;
};
//# sourceMappingURL=response-envelope.d.ts.map