import type { Concrete, ObjectOf } from "../Types"; interface Binding { concrete: Concrete; shared: boolean; } declare class Container { /** The container's shared instances. */ instances: ObjectOf; /** The container's bindings. */ protected bindings: ObjectOf; /** Register a binding with the container. */ bind(abstract: string, concrete: Concrete, shared?: boolean): void; /** Register shared binding in container. */ singleton(abstract: string, concrete: Concrete): void; /** Instantiate a concrete instance of the given type. */ build(abstract: string, params?: ObjectOf): T; /** Resolve the given type from the container. */ make(abstract: string, params?: {}): T; /** Register an existing instance as shared in the container. */ instance(abstract: string, instance: any): any; } export default Container;