import { Request , Response , NextFunction , IDinoRequestEndProps } from '../types' ; /**
 * Extend this class to create ServerErrorMiddleware
 */ export abstract class ErrorMiddleware { abstract invoke ( err , request , response , next ) ; } /**
 * Extend this class to create ServerErrorMiddlewareAsync
 */ export abstract class ErrorMiddlewareAsync { abstract async invoke ( err , request , response , next ) ; } /**
 * Extend this class to create ApplicationStartMiddleware
 */ export abstract class AppStartMiddleware { abstract invoke ( ) ; } /**
 * Extend this class to create RequestStartMiddleware
 */ export abstract class RequestStartMiddleware { abstract invoke ( request , response , next ) ; } /**
 * Extend this class to create RequestStartMiddlewareAsync
 */ export abstract class RequestStartMiddlewareAsync { abstract async invoke ( request , response , next ) ; } /**
 * Extend this class to create RequestEndMiddleware
 */ export abstract class RequestEndMiddleware { abstract invoke ( request , response , next , result , props ? ) ; } /**
 * Extend this class to create RequestEndMiddlewareAsync
 */ export abstract class RequestEndMiddlewareAsync { abstract async invoke ( request , response , next , result , props ? ) ; } /**
 * Extend this class to create Middleware
 */ export abstract class Middleware { abstract invoke ( request , response , next , data ? ) ; } /**
 * Extend this class to create MiddlewareAsync
 */ export abstract class MiddlewareAsync { abstract async invoke ( request , response , next , data ? ) ; } /**
 * Extend this class to create ActionFilter
 */ export abstract class ActionFilter { abstract beforeExecution ( request , response , next , data ? ) ; abstract afterExecution ( request , response , next , result , data ? ) ; } /**
 * Extend this class to create ActionFilterAsync
 */ export abstract class ActionFilterAsync { abstract async beforeExecution ( request , response , next , data ? ) ; abstract async afterExecution ( request , response , next , result , data ? ) ; } /**
 * Extend this class to create ExceptionFilter
 */ export abstract class ExceptionFilter { abstract invoke ( err , request , response , next ) ; } /**
 * Extend this class to create ExceptionFilterAsync
 */ export abstract class ExceptionFilterAsync { abstract async invoke ( err , request , response , next ) ; } /**
 * Extend this class to create ResultFilter
 */ export abstract class ResultFilter { abstract invoke ( request , response , next , result , data ? ) ; } /**
 * Extend this class to create ResultFilterAsync
 */ export abstract class ResultFilterAsync { abstract async invoke ( request , response , next , result , data ? ) ; }