import type { FastifyInstance, RouteShorthandOptions } from "fastify"; type AnyDrizzle = any; type AnyTable = any; export interface M2mRouteOptions { fastify: FastifyInstance; /** Source resource path, e.g. "/posts". The route mounts at `{path}/:id/{relationName}`. */ path: string; /** Navigation member name, e.g. "tags" → GET /posts/:id/tags. */ relationName: string; /** User's Drizzle instance. */ db: AnyDrizzle; /** The junction Drizzle table const (e.g. postTags). */ junctionTable: AnyTable; /** The target Drizzle table const (e.g. tags). */ targetTable: AnyTable; /** Junction FK column holding the SOURCE key (physical column name, e.g. "post_id"). */ sourceColumn: string; /** Junction FK column holding the TARGET key (physical column name, e.g. "tag_id"). */ targetColumn: string; /** Target entity PK column (physical column name, e.g. "id"). Defaults to "id". */ targetPkColumn?: string; /** Undirected self-join: union both junction FK columns on read. */ symmetric: boolean; /** Fastify route-level hooks (auth, etc.). */ routeOptions?: RouteShorthandOptions; } export declare function mountM2mRoute(opts: M2mRouteOptions): void; export {}; //# sourceMappingURL=mount-m2m.d.ts.map