export { type IContainer, type Resolvable, type IContainerModule, isDependencyKey, type DependencyKey, type InjectionToken, type Tag, type Tagged, type Instance, } from './container/IContainer';
export { Container } from './container/Container';
export { EmptyContainer } from './container/EmptyContainer';
export { AutoMockedContainer } from './container/AutoMockedContainer';
export { inject, resolveArgs } from './injector/inject';
export { type IInjector, type InjectOptions } from './injector/IInjector';
export { MetadataInjector } from './injector/MetadataInjector';
export { SimpleInjector } from './injector/SimpleInjector';
export { ProxyInjector } from './injector/ProxyInjector';
export { type ResolveDependency, type IProvider, scopeAccess, argsFn, args, type ArgsFn, ProviderDecorator, type ProviderResolveOptions, type IMapper, } from './provider/IProvider';
export { Provider } from './provider/Provider';
export { singleton, SingletonProvider } from './provider/SingletonProvider';
export { type Cache, multiCache, MultiCache } from './provider/Cache';
export { decorate, type DecorateFn } from './provider/DecoratorProvider';
export { type ProviderPipe } from './provider/ProviderPipe';
export { asKey, asAlias, type IRegistration, type ReturnTypeOfRegistration, scope, register, type ScopePredicate, } from './registration/IRegistration';
export { Registration } from './registration/Registration';
export { DependencyNotFoundError } from './errors/DependencyNotFoundError';
export { MethodNotImplementedError } from './errors/MethodNotImplementedError';
export { ContainerDisposedError } from './errors/ContainerDisposedError';
export { UnexpectedHookResultError } from './errors/UnexpectedHookResultError';
export { getHooks, hook, hasHooks, type HookFn, type HookClass, runHooks, runHooksAsync, injectProp, onDispose, onConstruct, runOnConstructHooks, runOnDisposeHooks, } from './hooks/hook';
export { HookContext, type InjectFn, type IHookContext } from './hooks/HookContext';
export { setMetadata, getMetadata, setParameterMetadata, setMethodMetadata, getMethodMetadata, getParameterMetadata, } from './metadata';
export { by } from './resolve';
export { type constructor } from './utils';
export { depKey, type DepKey } from './DepKey';
export { type InstancePredicate } from './resolve';
