///
import * as express from 'express';
import { Logger } from './';
/**
* Must return a promise that return true or false. If the result is true the scope checking will be skipped and next is called
*/
interface PrecedenceFunction {
(req: express.Request, res: express.Response, next: express.NextFunction): Promise;
}
/**
* Will be called when IPrecedenceFunction throws an error. Should be side effect free, returned Promises are ignored.
*/
interface PrecedenceErrorHandler {
(err: any, logger: Logger): any;
}
interface PrecedenceOptions {
precedenceFunction: PrecedenceFunction;
precedenceErrorHandler: PrecedenceErrorHandler;
logger: Logger;
}
export { PrecedenceFunction, PrecedenceErrorHandler, PrecedenceOptions };