/**
 * Classification strategies for the ClassifierRouter.
 *
 * - `classifyHeuristic` — zero-cost, no LLM. Generalizes the existing binary
 *   task classifier scorer (fast vs reasoning) into five difficulty tiers.
 * - `classifyLlm` — runs a cheap "classifier model" via an injected generate
 *   function, asking for a schema-constrained difficulty verdict. Falls back to
 *   the heuristic on any failure.
 */
import type { ClassifierCandidate, ClassifierDecision, ClassifierDifficulty, ClassifierGenerateFn, ClassifierModelRef, ClassifierRouterInput } from "../types/index.js";
/** Difficulty tiers, ordered easiest → hardest. */
export declare const CLASSIFIER_DIFFICULTIES: ClassifierDifficulty[];
/**
 * Heuristic classifier — maps the binary fast/reasoning scores plus prompt
 * length into one of five difficulty tiers. Deterministic and dependency-free.
 */
export declare function classifyHeuristic(input: ClassifierRouterInput): ClassifierDecision;
/**
 * LLM classifier — asks a cheap model for a schema-constrained verdict.
 * Falls back to the heuristic if the model is unavailable, times out, or
 * returns output that does not match the schema.
 */
export declare function classifyLlm(input: ClassifierRouterInput, generate: ClassifierGenerateFn, classifierModel?: ClassifierModelRef, timeoutMs?: number, candidates?: ClassifierCandidate[]): Promise<ClassifierDecision>;
