import '../third-party/reflect-metadata';
import { container as tsyringeContainer } from '../third-party/tsyringe.js';
import type { InjectionToken } from '../third-party/tsyringe.js';
import type { Constructor } from '../service/layers/types';
export declare const getContainer: () => typeof tsyringeContainer;
export declare const registerDependency: <T>(token: InjectionToken<T>, implementation: new (...args: unknown[]) => T) => void;
export declare const registerSingleton: <T>(token: InjectionToken<T>, implementation: new (...args: unknown[]) => T) => void;
export declare const registerValue: <T>(token: InjectionToken<T>, value: T) => void;
export declare const resolveDependency: <T>(token: InjectionToken<T>) => T;
export declare const clearContainer: () => void;
export declare const resolveDependencies: <T extends object>(dependencies: Array<Constructor<T>>) => T[];
export declare const registerDependencies: <T extends object>(dependencies: Array<Constructor<T>>) => void;
export declare const registerAndResolve: <T extends object>(dependencies: Array<Constructor<T>>) => T[];
//# sourceMappingURL=container.d.ts.map