import { ApiRequest, ApiResponse } from "@gongt/ts-stl-library/request/protocol"; import { Request, RequestHandler } from "express-serve-static-core"; import { RequestContext } from "./context"; import { ResponseInterface } from "./response-wrapper"; export interface ErrorHandler { (error: Error): void | Promise; } export interface ExpressRequestContext { context: RequestContext; } export interface ArgumentProcessorContext { request: Request; response: ResponseInterface; } export interface ArgumentFilter { (this: ArgumentProcessorContext, object: any, valueName?: string): void; } export interface ArgumentWorker { (this: ArgumentProcessorContext, object: any, valueName?: string): any; } export declare enum EParamType { TYPE_GET = 1, TYPE_POST = 2, TYPE_BODY = 3, TYPE_REWRITE_PATH = 4, TYPE_LOGIN = 5, TYPE_UPLOAD = 6, TYPE_COOKIE = 7, TYPE_SAFE_COOKIE = 8, TYPE_SESSION = 9, } export interface ParamType { name: string; from: EParamType; filter?: ArgumentFilter; handler?: ArgumentWorker; tsGenerateType?: string; middleware?: RequestHandler; middlewares?: RequestHandler[]; optionalDefault?: any; upload?: { fileCount: number; }; } export declare const REQUEST_CONTEXT_VAR_NAME = "__ExpressContextResponse"; export declare type EHCF_CommonReturn = null | void | ResType | ResType & ApiResponse; export declare type EHCF_Promise = Promise>; export interface SyncEHCF> { (context: ContextType): EHCF_CommonReturn; } export interface AsyncEHCF> { (context: ContextType): void | EHCF_Promise; } export declare type EHCF> = SyncEHCF | AsyncEHCF;