import { type Logger } from '@restorecommerce/logger';
import { EventEmitter } from 'events';
import { BindConfig } from './transport/provider/grpc/index.js';
/**
 * register transport provider
 *
 * @param  {string} name     transport provider identifier
 * @param  {constructor} provider transport provider constructor function
 */
export declare const registerTransport: (name: string, provider: any) => void;
/**
 * Server is a microservice server chassis.
 * It enables business logic to be accessed over transports and listen to events.
 * Default event providers: 'kafka'
 * Default transports: 'grpc'
 * @class
 */
export declare class Server extends EventEmitter {
    config: any;
    logger: Logger;
    middleware: any;
    transport: any;
    /**
     * @constructor
     * @param {object} config Server config.
     * @param {Logger} logger
     */
    constructor(config?: any, logger?: Logger);
    /**
     * bind connects the service to configured transports.
     *
     * @param  {string} name Service name.
     * @param  {BindConfig} bindConfig A business logic service.
     */
    bind(name: string, bindConfig: BindConfig<any>): Promise<void>;
    /**
     * start launches the server by starting transports and listening to events.
     */
    start(): Promise<any>;
    /**
     * Shuts down all transport provider servers.
     */
    stop(): Promise<any>;
}
//# sourceMappingURL=server.d.ts.map