import { CurriedFunction1 } from 'lodash'; import { type RouteLike } from '../content-api-route-params'; import * as visitors from './visitors'; import * as sanitizers from './sanitizers'; import type { Model, Data } from '../types'; export interface Options { auth?: unknown; /** * If true, removes fields that are not declared in the schema (input) or keeps only allowed query param keys (query). * Defaults to false for backward compatibility. * TODO: In Strapi 6, strictParams will default to true (and may be removed as an option) */ strictParams?: boolean; /** * When set, extra query/input params are derived from the route's request schema (and validated/sanitized with Zod). * When absent, no extra params are allowed in strict mode. */ route?: RouteLike; } export interface Sanitizer { (schema: Model): CurriedFunction1>; } export interface SanitizeFunc { (data: unknown, schema: Model, options?: Options): Promise; } export type SanitizeQueryParamHandler = (value: unknown, schema: Model, options?: Options) => Promise; export type SanitizeBodyParamHandler = (value: unknown, schema: Model, options?: Options) => Promise; export interface APIOptions { sanitizers?: Sanitizers; getModel: (model: string) => Model; } export interface Sanitizers { input?: Sanitizer[]; output?: Sanitizer[]; } declare const createAPISanitizers: (opts: APIOptions) => { input: SanitizeFunc; output: SanitizeFunc; query: (query: Record, schema: Model, { auth, strictParams, route }?: Options) => Promise>; filters: SanitizeFunc; sort: SanitizeFunc; fields: SanitizeFunc; populate: SanitizeFunc; }; export { createAPISanitizers, sanitizers, visitors }; export type APISanitiers = ReturnType; //# sourceMappingURL=index.d.ts.map