import type { PlanModeGateContext, PlanModeGateResult, ExitPlanModeAwaiter } from '../../../types/claude-code-runtime.js';
export type { ExitPlanModeAwaiter };
/**
 * Creates an awaiter that resolves after a timeout.
 * In production the host is expected to emit ExitPlanMode before this fires.
 * @internal exported for testing
 */
export declare function createExitPlanModeAwaiter(timeoutMs?: number): ExitPlanModeAwaiter;
/**
 * Enter Claude Code Plan mode when:
 *   1. The host declares it supports plan mode (context.hostSupportsPlanMode)
 *   2. The spec has not yet been approved (context.specApproved === false)
 *   3. The gate stage is 'merger' or 'planner'
 *
 * Returns a PlanModeGateResult with modeHint: "plan" to embed in the MCP
 * tool response. The caller must include this hint in the response JSON for
 * the Claude Code host to react.
 *
 * When any condition is not met, returns entered: false and a plain message
 * so the caller can proceed without blocking.
 */
export declare function enterPlanModeIfSupported(context: PlanModeGateContext): PlanModeGateResult;
//# sourceMappingURL=plan-mode-gate.d.ts.map