/// <reference types="node" />
import * as proxy from 'http-proxy-middleware';
import { SMAbstractResponse, SMAbstractNext, SMValidator } from '../consts';
/**
 * @description 双向校验
 */
export declare function createValidateMiddle(hooks?: SMAbstractNext): <Req extends import("http").IncomingMessage, Res extends SMAbstractResponse, Next extends SMAbstractNext>(req: Req, res: Res, next?: Next | undefined) => Promise<void>;
/**
 * @description http-proxy-middleware
 */
export declare const requestMiddleware: <Req extends import("http").IncomingMessage, Res extends SMAbstractResponse, Next extends SMAbstractNext>(req: Req, res: Res, next?: Next | undefined) => Promise<void>;
export declare const responseHooksFactory: (cb: SMValidator) => (req: import("http").IncomingMessage, res: SMAbstractResponse, swagger: {
    path: string;
    basePath: string;
}) => Promise<void>;
/**
 * @description response
 */
export declare const responseMiddleware: <Req extends import("http").IncomingMessage, Res extends SMAbstractResponse, Next extends SMAbstractNext>(req: Req, res: Res, next?: Next | undefined) => Promise<void>;
/**
 * @description 劫持 webpackDevServer proxy 配置，以获取参数及相应
 */
export declare function proxyHandle(proxies: proxy.Config[] | proxy.Config): proxy.Config[];
