/**
 * Pure phase-hint matching used by `update_plan_phase` to pick the
 * restatement to inject into a tool response. Extracted from
 * `claudeMcpServer.ts` (Phase 4 of v2.1) so the algorithm can be unit
 * tested without standing up a full MCP server.
 *
 * Match by weighted keyword overlap against the next phase's `name + goal`.
 * Phase names are weighted higher than goals so a phase named "综合结论"
 * is not stolen by goal text that happens to mention "根因/代表帧".
 *
 * Do not use an unconditional critical fallback here. Real e2e runs showed
 * that fallback injecting root-cause reminders into identity/global-context
 * phases is worse than omitting a reminder.
 */
import type { PhaseHint } from './strategyLoader';
interface PhaseSnapshot {
    name: string;
    goal?: string;
    summary?: string;
    status: 'pending' | 'in_progress' | 'completed' | 'skipped';
}
/**
 * Resolve the hint to inject into the response of a phase transition.
 * Returns `undefined` when no hint is applicable (e.g. agent's phase
 * matches no keywords AND every critical hint has already been covered).
 */
export declare function matchPhaseHintForNextPhase(input: {
    hints: ReadonlyArray<PhaseHint>;
    nextPhase: {
        name: string;
        goal?: string;
    };
    finishedPhases: ReadonlyArray<PhaseSnapshot>;
}): PhaseHint | undefined;
export {};
//# sourceMappingURL=phaseHintMatcher.d.ts.map