import { ServiceFunctionReferenceContainerInterface } from './ServiceFunctionReferenceContainerInterface';
import { ServiceFactoryReference } from '../Value/ServiceFactoryReference';
import { Override } from '../Value/Override';
import { ImmutableServiceReferenceList } from '../Value/ImmutableServiceReferenceList';
export declare class MergeServiceFunctionReferenceContainer<Services = any> implements ServiceFunctionReferenceContainerInterface<Services> {
    private parent;
    getService: any;
    private serviceReferences;
    /**
     * The global reference where all service functions are bound to, so
     * the 'this' keyword keeps working.
     */
    private servicesReferences;
    constructor(parent: ServiceFunctionReferenceContainerInterface<Services>);
    /**
     * The services that are from the 'parent' that are passed to the merged feature.
     */
    addMerged<TService>(reference: ServiceFactoryReference): () => TService;
    /**
     */
    add<TService>(reference: ServiceFactoryReference): () => TService;
    build(): Promise<Services>;
    references(): ImmutableServiceReferenceList;
    /**
     * If the service is
     */
    override<T>(override: Override<T>): this;
}
