/**
 * Topic Intent HTTP routes — diagnostics + read-only projection access.
 *
 * Layer 1 component. Exposes per-topic state so the user (operator) and
 * the agent itself can inspect what's being tracked, how confident the
 * agent is in each item, and what evidence built that confidence.
 *
 * Framework-agnostic: only depends on TopicIntentStore (file-based) and
 * Express. No Claude Code or Codex specifics.
 *
 * Endpoints:
 *   GET /topic-intent/:topicId/diagnostics — full projection snapshot
 *   GET /topic-intent/:topicId/refs        — just the refs (compact)
 *   GET /topic-intent/:topicId/pending     — outstanding + queued
 *   GET /topic-intent/:topicId/telemetry   — counters
 */
import { Router } from 'express';
import type { TopicIntentStore } from '../core/TopicIntent.js';
import { ArcCheck, type ArcCheckClassifyFn } from '../core/TopicIntentArcCheck.js';
export declare function createTopicIntentRoutes(deps: {
    topicIntentStore: TopicIntentStore | null;
    /** Layer 3 ArcCheck instance. Null/undefined → arccheck route returns
     *  a no-fire verdict (degrades open). Production constructs one shared
     *  instance in server.ts so the HTTP route and the in-process
     *  outbound-gate caller use the same classifier. */
    arcCheck?: ArcCheck | null;
    /** Legacy entrypoint — when `arcCheck` is not provided but a classifier
     *  function is, construct a per-route ArcCheck instance from it. Kept so
     *  pre-existing tests and out-of-process integrations keep working
     *  unchanged. Production passes `arcCheck` directly. */
    arcCheckClassify?: ArcCheckClassifyFn | null;
}): Router;
//# sourceMappingURL=topicIntentRoutes.d.ts.map