import { AsyncSeriesHook, AsyncParallelHook } from './hooks'; export interface ProviderHooksMap { willRegister: AsyncSeriesHook; didRegister: AsyncParallelHook; willDelete: AsyncParallelHook; didDelete: AsyncParallelHook; } export interface Options { throwOnDuplicates?: boolean; } type Item = Record; export interface Provider { hooks: ProviderHooksMap; register(key: string, item: T): Promise; delete(key: string): Promise; get(key: string): T | undefined; values(): T[]; keys(): string[]; has(key: string): boolean; size(): number; clear(): Promise>; } export type ProviderFactory = (options?: Options) => Provider; /** * A Provider factory */ declare const providerFactory: (options?: Options) => Provider; export default providerFactory; //# sourceMappingURL=provider-factory.d.ts.map