/** * Default heuristic request router. * * `createDefaultRequestRouter` produces a `RequestRouter` function that maps * lightweight request characteristics to a provider/model/region override. * It is entirely optional — hosts may supply their own `RequestRouter` function * instead, or disable routing entirely by not passing either. * * This PR adds `requestRouter` (and `modelPool`) as NeuroLink constructor * options. The router is skipped only when BOTH options.provider AND * options.model are explicitly set by the caller — a partial pin (e.g. only * provider) still allows the router to run. * * Decision logic (checked in order): * 1. Vision request → visionTier * 2. Large input or tools → largeTier * 3. Default → smallTier (only when config.smallTier is provided) * * When none of the configured tiers matches (or when the tier is not * configured), the router returns `{}` which is a no-op — the caller keeps * whatever provider/model was set by the user. */ import type { DefaultRequestRouterConfig, RequestRouter } from "../types/index.js"; /** * Creates a heuristic `RequestRouter` from a `DefaultRequestRouterConfig`. * * @param config — optional tier overrides; built-in defaults apply when omitted. * @returns a synchronous `RequestRouter` function (satisfies the async signature). */ export declare function createDefaultRequestRouter(config?: DefaultRequestRouterConfig): RequestRouter;