import { Container } from 'inversify';
export interface IExtension {
    name?: string;
    start(): Promise<void>;
    stop(): Promise<void>;
}
export interface IDisposable {
    dispose(): void | Promise<void>;
}
export declare class Bootstrapper {
    private container;
    private readonly extensionInstances;
    constructor(container: Container);
    start(): Promise<void>;
    stop(): Promise<void>;
    private startExtensionsAndInitialize;
    private startExtension;
    private stopExtensions;
    private stopExtension;
    private disposeServices;
    private discoverExtensions;
    private invoke;
}
