import { YargsInstance, Arguments } from './yargs'; export declare function globalMiddlewareFactory(globalMiddleware: Middleware[], context: T): (callback: MiddlewareCallback | MiddlewareCallback[], applyBeforeValidation?: boolean) => T; export declare function commandMiddlewareFactory(commandMiddleware?: MiddlewareCallback[]): Middleware[]; export declare function applyMiddleware(argv: Arguments | Promise, yargs: YargsInstance, middlewares: Middleware[], beforeValidation: boolean): Arguments | Promise; export interface MiddlewareCallback { (argv: Arguments, yargs: YargsInstance): Partial | Promise>; } export interface Middleware extends MiddlewareCallback { applyBeforeValidation: boolean; }