/**
 * ThreadlineEndpoints — HTTP route handlers for the Threadline protocol.
 *
 * Routes:
 *   GET  /threadline/health              — Health check + version
 *   POST /threadline/handshake/hello     — Initiate handshake (unauthenticated)
 *   POST /threadline/handshake/confirm   — Complete handshake (unauthenticated)
 *   POST /threadline/messages/receive    — Receive a message (authenticated)
 *   GET  /threadline/messages/thread/:id — Get thread messages (authenticated)
 *   GET  /threadline/blobs/:id           — Fetch blob content (authenticated)
 *
 * Authentication: Threadline-Relay token + signed headers for authenticated routes.
 * Content-Type: application/threadline+json; version=1.0
 *
 * Part of Threadline Protocol Phase 3.
 */
import { Router } from 'express';
import type { HandshakeManager } from './HandshakeManager.js';
import type { ThreadlineRouter } from './ThreadlineRouter.js';
import { type InboundAckDeps } from './recordInboundAck.js';
import { type SymmetryDeps } from './threadSymmetry.js';
/**
 * Robustness Phase 2 (D-B/D-D) dependencies for the canonical-history surfaces on
 * the verified E2E relay inbound path: the append funnel, the canonical log, the
 * conversation store (for symmetry state + participant-scoped backfill auth), and
 * the bounded Attention surface. Optional — absent in tests / when threadline is
 * disabled. Structurally the SymmetryDeps the symmetry helpers consume.
 */
export type CanonicalHistoryDeps = SymmetryDeps;
export interface ThreadlineError {
    error: {
        code: string;
        message: string;
        retryable: boolean;
        retryAfterSeconds?: number;
    };
}
export interface ThreadlineEndpointsConfig {
    /** Name of this agent */
    localAgent: string;
    /** Threadline protocol version */
    version: string;
    /** Agent state directory — used to resolve the canonical routing identity for /threadline/health */
    stateDir: string;
    /**
     * Secure A2A Verified Pairing (§3.6): a callback returning the count of
     * mutual-verified pairings, surfaced on /threadline/health as
     * `mutualVerifiedCount`. Optional — when absent the field is omitted (legacy
     * behavior). Threaded in from the route factory where the trust manager lives;
     * the relay-server router itself has no trust-manager access.
     */
    mutualVerifiedCount?: () => number;
}
export declare function createThreadlineRoutes(handshakeManager: HandshakeManager, threadlineRouter: ThreadlineRouter | null, config: ThreadlineEndpointsConfig, inboundAckDeps?: InboundAckDeps, canonicalDeps?: CanonicalHistoryDeps): Router;
//# sourceMappingURL=ThreadlineEndpoints.d.ts.map