/// <reference types="node" />
import * as http from 'http';
import * as https from 'https';
import { CtorT } from '../core/ctor';
import { ServiceT } from '../core/service';
import { Injector } from '../core/injector';
import { ServerMetadata } from '../metadata/server/server';
import { Logger } from '../services/logger';
export declare class ServiceReflector {
    private injector;
    private serverMeta;
    private logger;
    constructor(injector: Injector, serverMeta: ServerMetadata, logger: Logger);
    private _reflectedServices;
    reflectServices(services?: CtorT<ServiceT>[]): void;
    private reflectServicesImpl(services);
    private reflectService(serviceFn);
    private _startedServices;
    startServices(): Promise<boolean>;
    private startServicesImpl();
    private startService(service);
    listenServices(webServer: http.Server | https.Server): Promise<boolean>;
    listenServicesImpl(webServer: http.Server | https.Server): Promise<boolean>;
    listenService(service: ServiceT, webServer: http.Server | https.Server): Promise<boolean>;
    shutdownServices(): Promise<boolean>;
    private shutdownServicesImpl();
    private shutdownService(service);
}
