import { type Request } from 'express';
import type { EntityMeta, Type } from 'nukak/type';
export declare function querierMiddleware(opts?: MiddlewareOptions): import("express-serve-static-core").Router;
export declare function buildQuerierRouter<E>(entity: Type<E>, opts: ExtraOptions): import("express-serve-static-core").Router;
type ExtraOptions = {
    /**
     * Allow augment any kind of request before it runs
     */
    readonly pre?: Pre;
    /**
     * Allow augment a saving request (POST, PATCH, PUT) before it runs
     */
    readonly preSave?: PreSave;
    /**
     * Allow augment a filtering request (GET, PUT, DELETE) before it runs
     */
    readonly preFilter?: PreFilter;
};
type MiddlewareOptions = {
    readonly include?: Type<unknown>[];
    readonly exclude?: Type<unknown>[];
} & ExtraOptions;
type Pre = <E = unknown>(req: Request, meta: EntityMeta<E>) => void;
type PreSave = <E = unknown>(req: Request, meta: EntityMeta<E>) => void;
type PreFilter = <E = unknown>(req: Request, meta: EntityMeta<E>) => void;
export {};
