import type { FinalValue, Type } from '@suites/types.common'; import type { MockFunction, StubbedInstance } from '@suites/types.doubles'; import type { DependencyInjectionAdapter, IdentifierMetadata, InjectableIdentifier } from '@suites/types.di'; import type { DependencyContainer, IdentifierToMockOrFinal } from './dependency-container.js'; export declare class DependencyResolver { private readonly classesToExpose; private readonly mockedFromBeforeContainer; private readonly adapter; private readonly mockFunction; private readonly dependencyMap; private readonly availableClassesToExpose; constructor(classesToExpose: Type[], mockedFromBeforeContainer: DependencyContainer, adapter: DependencyInjectionAdapter, mockFunction: MockFunction); isLeafOrPrimitive(identifier: InjectableIdentifier): boolean; resolveOrMock(identifier: InjectableIdentifier, metadata?: IdentifierMetadata): Type | FinalValue | StubbedInstance; instantiateClass(type: Type, metadata?: IdentifierMetadata | undefined): Type | FinalValue | StubbedInstance; getResolvedDependencies(): IdentifierToMockOrFinal[]; getResolutionSummary(): { mocks: { metadata?: unknown; identifier: Type; }[]; exposes: Type[]; notFound: IdentifierToMockOrFinal[]; }; }