import type { RouteVisibility } from '@lokalise/api-contracts'; import type { FastifyPluginCallback } from 'fastify'; declare module 'fastify' { interface FastifyContextConfig { /** * Route audience for the visibility gate. Contract routes get it from * `@lokalise/fastify-api-contracts` (`config.apiContract`); set it directly * to gate a non-contract (legacy) route. */ visibility?: RouteVisibility; } } export type ApiVisibilityPluginOptions = { /** * Request header carrying the caller's audience, stamped by the gateway. Only * an exact match against `internalAudienceValues` is treated as internal; * anything else is public. * * @default 'x-api-audience' */ audienceHeader?: string; /** * `audienceHeader` value(s) that identify an internal caller, as a single value * or a list. Matching is exact and case-sensitive; any other value (or a * missing header) is public. * * @default ['internal'] */ internalAudienceValues?: string | string[]; /** * Path prefixes exempt from the visibility gate, always reachable by public * callers. * * @default [] */ alwaysPublicPathPrefixes?: string[]; }; export declare const apiVisibilityPlugin: FastifyPluginCallback;