import { FeatureFactory } from './FeatureFactory';
import { SetupFeatureServices } from './Feature';
import { KernelServices } from './Feature/KernelFeature';
/**
 * Immutable container factory.
 */
export declare class ContainerFactory<S> {
    private featureFactories;
    static create: () => ContainerFactory<SetupFeatureServices & KernelServices>;
    constructor(featureFactories?: FeatureFactory[]);
    /**
     * Merge functional service factory.
     */
    add<Services>(f1: FeatureFactory<Services, S>): ContainerFactory<S & Services>;
    build(): Promise<S>;
}
