import { SlotRegistry } from '@teambit/harmony';
import { Component } from '../component';
import { Environment } from './environment';
import { Runtime } from './runtime';
import { ExtensionDataList } from '../../consumer/config/extension-data';
export declare type EnvsRegistry = SlotRegistry<Environment>;
export declare type EnvsConfig = {
    env: string;
    options: EnvOptions;
};
export declare type EnvOptions = {};
export declare class Environments {
    readonly config: EnvsConfig;
    private envSlot;
    static id: string;
    static dependencies: never[];
    constructor(config: EnvsConfig, envSlot: EnvsRegistry);
    dev(components: Component[]): Promise<Runtime>;
    createEnvironment(components: Component[]): Promise<Runtime>;
    getEnvFromExtensions(extensions: ExtensionDataList): Environment | null;
    registerEnv(env: Environment): void;
    private createRuntime;
    private aggregateByDefs;
    static slots: ((registerFn: () => string) => SlotRegistry<Environment>)[];
    static defaultConfig: {};
    static provider(_deps: [], config: EnvsConfig, [envSlot]: [EnvsRegistry]): Promise<Environments>;
}
