export * from './plugin-entry'; export interface IMethodusClassConfig { methodType: MethodType; classType: any; serverType: ServerType; } export interface Router { prefix: string; } export declare type Dictionary = { [key: string]: T; }; export declare type ClassNoArgs = { new (): any; }; export declare type ClassArgs = { new (...args: any[]): any; }; export declare type ClassRef = ClassNoArgs | ClassArgs; export declare type ModuleTargetClass = { new (): any; imports?: ClassRef[]; declarations?: ClassRef[]; providers?: ClassRef[]; exports?: ClassRef[]; }; export declare enum AuthType { None = 0, Basic = 1, ApiKey = 2, BearerToken = 3, DigestAuth = 4 } export interface ITransport { name: string; register(server: any, parentServer: any): void; send(methodus: any, functionArgs: any, paramsMap: any, securityContext: any): Promise; } export interface IServer { classRouters: any[]; config: IMethodusConfig; sockets?: any; useClass(classType: any, methodType: MethodType): void; _send(channel: any, functionArgs: any, message: any, paramsMap?: any): any; } export interface IMethodusConfig { classes: Map; servers?: IServerConfig[]; port: number; } export interface IServerConfig { type: ServerType; options: any; } export declare enum TransportType { Http = "Http", MQ = "MQ", Redis = "Redis", Socket = "Socket", Kafka = "Kafka", Mock = "Mock", Custom = "Custom" } export declare enum MethodType { Local = "Local", Http = "Http", Http2 = "Http2", MQ = "MQ", Redis = "Redis", Socket = "Socket", Kafka = "Kafka", Mock = "Mock" } export declare enum ServerType { Express = "express", RabbitMQ = "amqp", Redis = "redis", Socket = "Socket", Kafka = "kafka", HTTP2 = "Http2", Custom = "Custom" } export interface ServerDefinition { name: string; path?: string; static?: any; module?: any; parser?: any; response?: any; } export interface MethodDescriptor { verb: string; route: string; methodType: MethodType; propertyKey: string; middlewares?: any; params: any[]; } export interface EventDescriptor extends MethodDescriptor { name: string; value?: any; exchange?: string; }