import type { ClassInjectable, IdentifierMetadata, InjectableIdentifier } from '@suites/types.di'; import type { Stub, StubbedInstance } from '@suites/types.doubles'; import type { ConstantValue, DeepPartial, FinalValue } from '@suites/types.common'; export type IdentifierToMockOrFinal = [ Pick & { metadata?: unknown; }, StubbedInstance | FinalValue ]; export type IdentifierToFinal = [ Pick & { metadata?: never; }, FinalValue ]; export type IdentifierToMockImplWithCb = [ Pick & { metadata?: unknown; }, (stubFn: () => Stub) => DeepPartial ]; export interface DependencyContainer { resolve(identifier: InjectableIdentifier, metadata?: IdentifierMetadata): StubbedInstance | ConstantValue; } export declare class DependencyContainer { private readonly identifierToDependency; constructor(identifierToDependency: IdentifierToMockOrFinal[]); list(): IdentifierToMockOrFinal[]; }