import { MethodDescriptor, Middleware } from '../types/index.js';
declare function middleware<T = void, R = void>(middlewares: Middleware<T, R>[], postMiddlewares?: Middleware<T, R>[]): <D extends MethodDescriptor<T, R>>(target: unknown, key: string | symbol, descriptor: D) => D;
declare namespace middleware {
    var pre: <T = void, R = void>(...middlewares: Middleware<T, R>[]) => <D extends MethodDescriptor<T, R>>(target: unknown, key: string | symbol, descriptor: D) => D;
    var post: <T = void, R = void>(...middlewares: Middleware<T, R>[]) => <D extends MethodDescriptor<T, R>>(target: unknown, key: string | symbol, descriptor: D) => D;
}
export { middleware, };
