import type { ElicitFromUserOptions, ElicitFromUserResult } from '../../types/elicitation.js';
export type { ElicitFromUserResult, CachedDecisionOutcome } from '../../types/elicitation.js';
/** Maximum milliseconds to wait for elicitInput before falling back. */
export declare const ELICIT_TIMEOUT_MS = 30000;
/**
 * Elicit a user decision with full progressive enhancement.
 *
 * - Cache hit → `{ mode: 'cached', value }` (no user prompt)
 * - Technical decision → `{ mode: 'cached', value: inferredValue }` (no user prompt)
 * - Native elicitation → `{ mode: 'native', action, content? }`
 * - Fallback → `{ mode: 'fallback', interactiveQuestions }`
 *
 * On native accept, the decision is persisted to conventions.json for future
 * calls.  On cancel/decline or fallback, nothing is cached.
 *
 * Multi-field schemas: each accepted field is cached independently as
 * `${DECISION_CACHE_KEY_PREFIX}${decisionKey}.${fieldName}`.
 *
 * @throws Never — all errors are caught and degraded to fallback.
 */
export declare function elicitFromUser(opts: ElicitFromUserOptions): Promise<ElicitFromUserResult>;
//# sourceMappingURL=user-elicitor.d.ts.map