import { MethodType, ServerType } from './interfaces';
export declare const enum Verbs {
    Get = "GET",
    Post = "POST",
    Put = "PUT",
    Patch = "PATCH",
    Head = "HEAD",
    Delete = "DELETE",
}
export interface MethodDescriptor {
    verb: Verbs;
    route: string;
    methodType: MethodType;
    propertyKey: string;
    middlewares?: any;
    params: any[];
}
export interface EventDescriptor extends MethodDescriptor {
    name: string;
    value?: any;
    exchange?: string;
}
export declare class MethodusClassConfig {
    /**
     *
     */
    constructor(classType: any, methodType: MethodType, serverType: ServerType, resolver?: Promise<any> | Function | string | any);
    methodType: MethodType;
    serverType: ServerType;
    classType: any;
    serviceName: string;
    resolver: Promise<any> | Function | string | any | string;
}
export declare class MethodusConfig {
    constructor(servers?: ServerConfig[], map?: Map<string, MethodusClassConfig>);
    classes: Map<string, MethodusClassConfig>;
    servers: ServerConfig[];
    plugins: string[];
    port: number;
    use(classType: any, methodType: MethodType, serverType: ServerType, resolver?: Promise<any> | Function | string | any): void;
    run(serverType: ServerType, configuration: any): void;
}
export declare class ServerConfig {
    constructor(type: ServerType, options?: any);
    type: ServerType | any;
    options: any;
    onStart?: Function;
}
export declare class MethodusConfigurations {
    static _configurations: any;
    static add(configurationInstance: any): void;
    static get(): any;
}
export declare class ConnectionOptions {
    amqp: any;
    name: any;
    userName: any;
    password: any;
}
export declare function MethodusConfigFromFile(configPath: any): any;
