/// <reference types="cookie-parser" />
import type { NextFunction, Request, Response } from "express";
import { PostProcessAuth, PreProcessAuth } from "./local.js";
export declare function zodError(error: Error): {
    message: any;
    status: number;
};
export declare function jwtError(error: Error): {
    message: string;
    status: number;
};
export declare function duplicateDocHandler(error: Error): {
    status: number;
    message: string;
};
type Controller = (req: Request, res: Response, next: NextFunction) => Promise<any>;
interface RequestProcessors<T extends object> {
    pre?: PreProcessAuth;
    main: Controller;
    post?: PostProcessAuth<T>;
}
export declare function asyncHandler(controller: Controller): (req: Request, res: Response, next: NextFunction) => Promise<any>;
export declare function withRequestProcessors<T extends Object>(path: string, processors: RequestProcessors<T>): (req: Request, res: Response, next: NextFunction) => Promise<void>;
export {};
