type ServiceFactory = (container: ServiceContainer) => T; interface ServiceContainerLike { has(key: string): boolean; resolve(key: string): T; } declare class ServiceContainer implements ServiceContainerLike { private readonly services; private readonly singletonFactories; private readonly bindings; set(key: string, value: T): T; singleton(key: string, factory: ServiceFactory): void; bind(key: string, factory: ServiceFactory): void; get(key: string): T; resolve(key: string): T; make(key: string): T; instance(key: string, value: T): T; has(key: string): boolean; } interface ConfigStoreLike { get(key: string): T | undefined; require(key: string): T; has(key: string): boolean; } declare class ConfigStore implements ConfigStoreLike { private readonly values; set(key: string, value: T): T; get(key: string): T | undefined; require(key: string): T; has(key: string): boolean; } export type { ConfigStoreLike, ServiceContainerLike, ServiceFactory }; export { ConfigStore, ServiceContainer };