///
///
import { EventEmitter } from 'events';
import * as http from 'http';
import { IServerOptions, IServices } from './types';
import { WSDL } from './wsdl';
interface IExpressApp {
route: any;
use: any;
}
export declare type ServerType = http.Server | IExpressApp;
declare type Request = http.IncomingMessage & {
body?: any;
};
declare type Response = http.ServerResponse;
export interface Server {
emit(event: 'request', request: any, methodName: string): boolean;
emit(event: 'headers', headers: any, methodName: string): boolean;
emit(event: 'response', headers: any, methodName: string): boolean;
/** Emitted for every received messages. */
on(event: 'request', listener: (request: any, methodName: string) => void): this;
/** Emitted when the SOAP Headers are not empty. */
on(event: 'headers', listener: (headers: any, methodName: string) => void): this;
/** Emitted before sending SOAP response. */
on(event: 'response', listener: (response: any, methodName: string) => void): this;
}
export declare class Server extends EventEmitter {
path: string | RegExp;
services: IServices;
log: (type: string, data: any) => any;
authorizeConnection: (req: Request, res?: Response) => boolean;
authenticate: (security: any, processAuthResult?: (result: boolean) => void, req?: Request, obj?: any) => boolean | void | Promise;
private wsdl;
private suppressStack;
private returnFault;
private onewayOptions;
private enableChunkedEncoding;
private soapHeaders;
private callback?;
constructor(server: ServerType, path: string | RegExp, services: IServices, wsdl: WSDL, options?: IServerOptions);
addSoapHeader(soapHeader: any, name?: string, namespace?: any, xmlns?: string): number;
changeSoapHeader(index: any, soapHeader: any, name?: any, namespace?: any, xmlns?: any): void;
getSoapHeaders(): string[];
clearSoapHeaders(): void;
private _processSoapHeader;
private _initializeOptions;
private _processRequestXml;
private _requestListener;
private _getSoapAction;
private _process;
private _getMethodNameBySoapAction;
private _executeMethod;
private _envelope;
private _sendError;
private _sendHttpResponse;
}
export {};