export interface Precondition { /** The target precondition header field. */ readonly header: string; readonly evaluate: EvaluateCallback; readonly respond: RespondCallback; } export interface EvaluateContext { readonly fieldValue: string; } export interface EvaluateCallback { (request: Request, response: Response, context: EvaluateContext): boolean | Promise; } export interface RespondCallback { (request: Request): Response | Promise; }