/// import { Express, RequestHandler } from 'express'; import { PersistentStoreAdapter } from './persistency'; import { BaseConnector, BaseHttpConnector, EventConfiguration } from 'reshuffle-base-connector'; import { Logger, LoggerOptions } from 'winston'; import http from 'http'; export interface Handler { handle: (event: any, app: Reshuffle) => void; id: string; } export default class Reshuffle { availableConnectors: any; httpDelegates: { [path: string]: any; }; port: number; registry: { connectors: { [url: string]: BaseConnector; }; handlers: { [id: string]: Handler[]; }; common: { webserver?: Express; persistentStore?: any; }; }; httpServer?: http.Server; logger: Logger; middleware: RequestHandler[]; constructor(loggerOptions?: LoggerOptions); addMiddleware(middleware: RequestHandler): void; private prepareWebServer; register(connector: BaseConnector): Reshuffle; unregister(connector: BaseConnector): Promise; getConnector(connectorId: BaseConnector['id']): BaseConnector; registerHTTPDelegate(path: string, delegate: BaseHttpConnector): Reshuffle; unregisterHTTPDelegate(path: string): void; when(eventConfiguration: EventConfiguration, handler: (() => void) | Handler): Reshuffle; start(port?: number, callback?: () => void): void; stopWebServer(): void; restart(port?: number): void; handleEvent(eventId: EventConfiguration['id'], event: any): Promise; onHandleEvent(handler: Handler, event: any): Promise; setPersistentStore(adapter: PersistentStoreAdapter): PersistentStoreAdapter; getPersistentStore(): any; getLogger(): Logger; } export { Reshuffle };