import type { Request, Response, NextFunction, RequestHandler } from 'express'; import type { Connection } from '@mathislair/mtbdb'; import type { DaoCtor, MiddlewareOrValidator } from './types'; import { type ResolvedUserBinding } from './userResolver'; import { type CaseConvention } from './caseConvention'; /** * Wrap a function-with-arity-<3 (validator) into a real Express middleware. * Functions with arity >=3 are assumed to already be middleware. * * Validators may throw or return an Error to short-circuit the request. */ export declare function adapt(fn: MiddlewareOrValidator): RequestHandler; export interface BuildHandlerContext { /** Optional resolver that fills server-managed user columns on writes. */ userBinding?: ResolvedUserBinding; /** Wire-format case convention. Defaults to 'snake'. */ caseConvention?: CaseConvention; /** * If true, list (GET ) responses are wrapped in a paginated envelope: * `{ data, total, limit, offset }`. Adds an extra `count(*)` query. Default false. */ paginate?: boolean; } export declare function buildHandler(conn: Connection, daoCtor: DaoCtor, method: 'get' | 'getOne' | 'post' | 'put' | 'patch' | 'delete', ctx?: BuildHandlerContext): RequestHandler; /** Translates HttpError (and unknown errors) into JSON responses. */ export declare function errorMiddleware(): (err: unknown, req: Request, res: Response, next: NextFunction) => void; //# sourceMappingURL=handlers.d.ts.map