import { main } from './proposals';
/**
 * Implemented registry with microservices
 */
export declare class ServiceRegistry {
    /**
     * Microservices implemented
     */
    private services;
    /**
     * Hooks implemented
     */
    private hooks;
    /**
     * Non local resolvers of microservice acts
     * TODO: THis is not used yet
     */
    resolvers: Array<any>;
    /**
     * Adds an microservice on a specific root performing a certain operation and give that a name
     */
    addMicroService(root: string, name: string, service: main.types.MicroService): void;
    /**
     * Adds a pre hook to microservice
     */
    addPreHook(root: string, name: string, hook: main.types.Hook<main.types.Request>): void;
    /**
     * Adds a post hook to microservice
     */
    addPostHook(root: string, name: string, hook: main.types.Hook<main.types.Response>): void;
    /**
     * Do the microservice pre hook
     */
    doPreHook(root: string, name: string, payload: main.types.Request): main.types.Request;
    /**
    * Do the microservice post hook
    */
    doPostHook(root: string, name: string, payload: main.types.Response): main.types.Response;
    /**
     * Act out the microservice based upon the request
     */
    act(root: string, name: string, request: main.types.Request): main.types.Response;
}
