import { ServiceFunctionReferenceConfiguration } from './BaseServiceFactoryReference';
import { ServiceTag, SF } from '../ServiceFactory';
import { FeatureFactory, FF } from '../FeatureFactory';
import { ServiceFactoryReference } from './ServiceFactoryReference';
import { ImmutableServiceReferenceList } from './ImmutableServiceReferenceList';
import { TaggedServiceFactoryReference } from './TaggedServiceFactoryReference';
import { Override } from './Override';
/**
 * TODO: remove extends.
 */
export declare class MergedTaggedServiceFunctionReference extends TaggedServiceFactoryReference {
    private original;
    constructor(original: TaggedServiceFactoryReference, tag: string, feature: FeatureFactory<any>);
    override(override: Override): void;
    get configuration(): ServiceFunctionReferenceConfiguration;
    getUuid(): string;
    callServiceFactory(thisReference: Record<ServiceTag, SF>): void;
    getService(): unknown;
    setContainerConfiguration(_configuration: ServiceFunctionReferenceConfiguration): void;
    getFactory(): SF<any>;
    getFeature(): FF;
    getProxy(): SF<any>;
    hasServiceInstance(): boolean;
    addDependency(dependency: ServiceFactoryReference): void;
    getDependencies(): ImmutableServiceReferenceList;
    label(): string;
}
