import { ServiceFactoryReference } from './ServiceFactoryReference';
import { ServiceTag, SF } from '../ServiceFactory';
import { TaggedServiceFactoryReference } from './TaggedServiceFactoryReference';
export declare class ImmutableServiceReferenceList {
    private readonly references;
    constructor(references?: ServiceFactoryReference[]);
    /**
     * This dependency is depended on the other dependency.
     */
    add(dependency: ServiceFactoryReference): ImmutableServiceReferenceList;
    getService(tag: ServiceTag): TaggedServiceFactoryReference;
    taggedPairs(): [ServiceTag, TaggedServiceFactoryReference][];
    async(): ImmutableServiceReferenceList;
    notASync(): ImmutableServiceReferenceList;
    filter(accept: (reference: ServiceFactoryReference) => boolean): ImmutableServiceReferenceList;
    serviceFactoryObject(): Record<ServiceTag, SF>;
    has(needle: ServiceFactoryReference): boolean;
    hasTagged(needle: ServiceTag): boolean;
    toArray(): ServiceFactoryReference[];
    remove(reference: ServiceFactoryReference): ImmutableServiceReferenceList;
    last(): ServiceFactoryReference;
    forEach(iterator: (dependency: ServiceFactoryReference) => void): void;
    isEmpty(): boolean;
    isNotEmpty(): boolean;
    count(): number;
}
