import type { Token } from '../../../utils/types.js'; import { Container } from '../../container/Container.js'; import type { Provider, ProviderFactory, ProviderResolver } from '../Provider.js'; import { type FactoryProviderWithClass } from './ClassFactory.js'; import { type FactoryProviderWithFunction } from './FunctionFactory.js'; export type FactoryProvider = FactoryProviderWithFunction | FactoryProviderWithClass; export declare function isFactoryProvider(provider: Provider): provider is FactoryProvider; export declare class FactoryProviderFactory implements ProviderFactory { create(factory: FactoryProvider['factory']): FactoryProvider; } export declare class FactoryProviderResolver implements ProviderResolver { private readonly container; constructor(container: Container); canResolve: typeof isFactoryProvider; resolve(provider: FactoryProvider, token: Token): V; }