type CallFunction = (...args: TArguments) => TResult; type FunctionEnhancer = ( next: CallFunction ) => CallFunction; type FunctionMiddleware = ( ...args: TSetupArguments ) => FunctionEnhancer; export default FunctionMiddleware; export type { CallFunction, FunctionEnhancer };