/**
 * Thread Router — automatic problem-solving orchestration for threads.
 *
 * Classifies the user's task, auto-selects relevant skills, and produces
 * a RoutingPlan that guides the agent's execution strategy.
 *
 * The router runs at thread start (before the first turn) and injects
 * its plan into the thread record + agent context.
 */
import type { RoutingPlan } from "@jait/shared/types";
import type { Skill } from "../skills/index.js";
export declare function matchSkills(message: string, skills: Skill[]): string[];
export interface RouteThreadOptions {
    /** The user's first message / task description. */
    message: string;
    /** Available skills from the registry. */
    availableSkills: Skill[];
    /** Skills already pinned on the thread (user-selected). */
    pinnedSkillIds?: string[] | null;
    /** The thread kind (delivery vs delegation). */
    kind?: "delivery" | "delegation";
    /** Repository strategy text, if any. */
    repoStrategy?: string | null;
}
/**
 * Route a thread — classify intent, match skills, determine topology.
 * This is a synchronous, heuristic-based router (Phase 1).
 * Phase 2 will add an optional LLM classification pass for ambiguous cases.
 */
export declare function routeThread(options: RouteThreadOptions): RoutingPlan;
/**
 * Format the routing plan as a prescriptive problem-solving methodology
 * injected into the agent's first turn message. This tells the agent
 * exactly how to approach the task using structured orchestration phases.
 *
 * For short, straightforward messages the orchestration is kept lightweight
 * to avoid wasting tokens on ceremony for trivial tasks.
 */
export declare function formatRoutingPlanForPrompt(plan: RoutingPlan, messageLength?: number): string;
//# sourceMappingURL=thread-router.d.ts.map