import type { InteractiveQuestion, HostHint } from '../types/clarification.js';
import type { EscalateRole } from '../types/escalator.js';
/**
 * Format a success response with optional next steps.
 * Output: ✅ **{title}**\n\n{body}\n\n🚀 **Next Steps**\n1. ...\n2. ...
 */
export declare function formatSuccess(title: string, body: string, nextSteps?: string[]): string;
/**
 * Format a warning with blockquote and optional suggestions.
 * Output: ⚠️ **{title}**\n> {body}\n\n💡 **Suggestions**\n- ...
 */
export declare function formatWarning(title: string, body: string, suggestions?: string[]): string;
/**
 * Format an error with fix instructions.
 * Output: ❌ **Error:** {message}\n💡 **How to fix:** {fix}
 */
export declare function formatError(message: string, fix?: string): string;
/**
 * Append a next-steps section to existing text.
 */
export declare function addNextSteps(text: string, steps: string[]): string;
/**
 * Wrap a JSON-serializable value into a success ToolResult.
 * The value is compact-printed as JSON text content (via output-formatter).
 */
export declare function jsonResult(data: unknown): {
    content: {
        type: 'text';
        text: string;
    }[];
    isError?: boolean;
};
/**
 * Wrap a plain text message into a ToolResult.
 */
export declare function textResult(message: string): {
    content: {
        type: 'text';
        text: string;
    }[];
    isError?: boolean;
};
/**
 * Wrap an error message into a ToolResult with isError: true.
 * The message is returned as plain text (not JSON-wrapped).
 */
export declare function errText(message: string): {
    content: {
        type: 'text';
        text: string;
    }[];
    isError: true;
};
/**
 * Wrap a JSON-serializable error payload into a ToolResult with isError: true.
 */
export declare function errJson(data: unknown): {
    content: {
        type: 'text';
        text: string;
    }[];
    isError: true;
};
/**
 * SPEC-695 + SPEC-708: Build a ToolResult for interactive clarification with mandatory
 * humanSummary and host-aware directive text. Guarantees that every interactiveQuestions[]
 * response has an explicit relay instruction matching the connected host's native UI
 * (AskUserQuestion in Claude Code, Composer follow-up in Cursor, native prompt in Codex/Gemini).
 */
export declare function interactiveResult(questions: InteractiveQuestion[], message: string, hostHint?: HostHint): {
    content: {
        type: 'text';
        text: string;
    }[];
    isError?: boolean;
    structuredContent?: Record<string, unknown>;
};
/**
 * SPEC-729: Build the standard 3-option AskUserQuestion payload for escalation decisions.
 *
 * Called when `withEscalation` returns an escalation sentinel and the caller needs to
 * surface the decision to the human operator via interactiveQuestions.
 *
 * @param role       - The escalated role (reviewer | validator | releaser).
 * @param lastReason - The reason from the last failed attempt.
 * @returns An InteractiveQuestion[] ready for use with `interactiveResult`.
 */
export declare function escalateDecisionPrompt(role: EscalateRole, lastReason: string): InteractiveQuestion[];
/**
 * Wrap text into a CallToolResult format.
 */
export declare function toolResult(text: string, structured?: Record<string, unknown>, isError?: boolean): {
    content: {
        type: 'text';
        text: string;
    }[];
    isError?: boolean;
    structuredContent?: Record<string, unknown>;
};
//# sourceMappingURL=response-helpers.d.ts.map