///
import { Express } from 'express';
import * as http from 'http';
import { GatewayRoute, IGatewayRoute } from './GatewayRoute';
interface IGatewayOpts {
environment?: string;
enableLogging?: boolean;
onLoad?: Function;
onLog?: (res: IGatewayOnLog) => Promise;
onStart?: Function;
onStop?: Function;
routes?: ({
new (): GatewayRoute;
} | IGatewayRoute)[];
tokenExpiresIn?: number;
tokenSecret?: string;
url?: string;
}
interface IGatewayOnLog {
curl: string;
duration: number;
errorMessage?: string;
httpVersion: string;
method: string;
path: string;
port: number;
query: string;
requestBody: string;
requestHeaders: string[];
responseBody: string;
responseHeaders: string[];
statusCode: number;
statusMessage: string;
}
export declare class Gateway {
environment: string;
express: Express;
listener: http.Server;
routes: ({
new (): GatewayRoute;
} | IGatewayRoute)[];
tokenExpiresIn: number;
tokenSecret: string;
user: any;
onLoad: Function;
onLog: (res: IGatewayOnLog) => Promise;
onStart: Function;
onStop: Function;
enableLogging: boolean;
url: string;
constructor(opts?: IGatewayOpts);
load(cb?: Function): Promise;
start(cb?: Function): Promise;
stop(cb?: Function): Promise;
}
export {};