import { type interfaces, LazyServiceIdentifier } from 'inversify';
export type Newable<T> = interfaces.Newable<T>;
export type ServiceIdentifier<T> = interfaces.ServiceIdentifier<T>;
export type FactoryFunction<T> = () => interfaces.ServiceIdentifier<T>;
export type ServiceDescriptor<T> = T | LazyServiceIdentifier<T> | FactoryFunction<T>;
export { LazyServiceIdentifier };
export interface ServicesAccessor {
    get<T>(id: ServiceIdentifier<T>): T;
}
export declare function registerSingleton<T>(id: ServiceIdentifier<T>, useValue: T | LazyServiceIdentifier<T>): void;
export declare function registerSingleton<T>(id: ServiceIdentifier<T>, useFactory: FactoryFunction<T>): void;
export declare function registerSingleton<T>(id: ServiceIdentifier<T>, useClass: Newable<T>, supportsDelayedInstantiation: true): void;
export declare function getSingletonServiceDescriptors(): [ServiceIdentifier<unknown>, ServiceDescriptor<unknown>][];
