import { Creator, ProviderCallback, Module, Creates, Arguments } from "./types"; import { Token } from "./token"; declare class Container { private dependencies; private providers; private requests; constructor(); add(token: Token>, creator: T, args?: Arguments): void; addAsync(token: Token>, asyncCreator: Promise, args?: Arguments): Promise; share(token: Token>, creator: T, args?: Arguments): void; shareAsync(token: Token>, asyncCreator: Promise, args?: Arguments): Promise; constant(token: Token, value: T): void; constantAsync(token: Token, asyncValue: Promise): Promise; private register; private registerAsync; get(token: Token): T; getAsync(token: Token): Promise; provide(tokens: Token[], provider: ProviderCallback): void; provideAsync(tokens: Token[], asyncProvider: Promise): void; use(module: Creator): void; useAsync(asyncModule: Promise>): void; private instantiate; private instantiateAsync; private create; private createAsync; private createSingle; private createSingleAsync; private resolve; private resolveAsync; private construct; } declare function createContainer(): Container; export { Container, createContainer };