import { Constructor, Token } from '../token'; import { ClassProvider } from '../provider/class/class-provider'; import { ValueProvider } from '../provider/value/value-provider'; import { FactoryProvider } from '../provider/factory/factory-provider'; import { RecordFactory } from '../provider/record.factory'; import { CollectionRecordFactory } from '../provider/collection/collection-record.factory'; import { KeyRegister } from '../key/key.register'; import { Key } from '../key/key'; export declare class ContainerProvider { private readonly keyRegister; private readonly providerManager; private readonly collectionProviders; constructor(keyRegister: KeyRegister); provide(clazz: Constructor): void; provide(token: Token, provider: ClassProvider): void; provideClass(token: Token, provider: ClassProvider): void; provideValue(token: Token, provider: ValueProvider): void; provideFactory(token: Token, provider: FactoryProvider): void; provideCollection(token: Token, provider: ClassProvider): void; provideFactoryCollection(token: Token, provider: FactoryProvider): void; provideValueCollection(token: Token, provider: ValueProvider): void; clear(): void; getRecordFactory(key: Key): RecordFactory; getCollectionRecordFactory(key: Key): CollectionRecordFactory; private addProvider; private addCollectionProvider; }