import type { ElicitationSchema, ElicitOrFallbackOutcome, EnumSchemaBuilderResult } from '../../types/elicitation.js';
import type { InteractiveQuestion } from '../../types/clarification.js';
/**
 * Build a single enum schema entry `{ field, property }` for insertion into
 * an ElicitationSchema. Keeps the schema assembly at the call site while
 * centralizing enum/enumNames validation and default-value handling.
 */
export declare function buildEnumSchema(field: string, enums: readonly string[], enumNames: readonly string[], description: string, defaultValue?: string): EnumSchemaBuilderResult;
/**
 * Build a confirm-style schema with `cancel` as the first (default) option.
 * Destructive operations (delete_spec etc.) use this so the default answer
 * on cancel or decline is always "do nothing".
 */
export declare function buildConfirmSchema(field?: string, confirmLabel?: string, cancelLabel?: string, description?: string): EnumSchemaBuilderResult;
/**
 * Unified elicit-or-fallback call site.
 *
 * When the connected client supports MCP Elicitation: calls
 * `server.elicitInput({ message, requestedSchema })` and returns
 * `{ mode: 'native', action, content? }`.
 *
 * When the client does NOT support elicitation (or server is unavailable):
 * returns `{ mode: 'fallback', interactiveQuestions }`.
 */
export declare function elicitOrFallback(server: unknown, message: string, schema: ElicitationSchema, fallback: InteractiveQuestion | InteractiveQuestion[]): Promise<ElicitOrFallbackOutcome>;
/**
 * Convert an array of legacy InteractiveQuestions into a single
 * ElicitationSchema. Used when a tool already has interactiveQuestions in
 * structuredContent and wants to offer native elicitation too — mapping lets
 * the same fallback shape drive both paths.
 *
 * Each question becomes a property whose field name is derived from the
 * header (slugified) and whose enum is the option labels.
 */
export declare function questionsToFormSchema(questions: InteractiveQuestion[]): ElicitationSchema;
//# sourceMappingURL=elicit-helper.d.ts.map