/// <reference types="node" />
import EventEmitter = require('events');
import { InternalRuntimeContext } from './env';
import { Service } from './types';
declare class ServiceController extends EventEmitter {
    private readonly service;
    private readonly startPendingDependencies;
    private startPromise;
    private meta;
    constructor(service: Service);
    get id(): string;
    addDependency(dependency: ServiceController): void;
    readonly start: (ctx: InternalRuntimeContext) => Promise<void>;
    private doStart;
    readonly stop: (ctx: InternalRuntimeContext) => Promise<void>;
    private onDependencyStarted;
    private isStarted;
}
export { ServiceController };
