import { type ClassToken, type ClassType, type FactoryType, type Token, type Type, type ValueType } from '@frontmcp/di'; import { type ProviderMetadata } from '../metadata'; export type ProviderClassType = ClassType & ProviderMetadata; export type ProviderValueType = ValueType & ProviderMetadata; export type ProviderFactoryType = FactoryType & ProviderMetadata; export type ProviderType = Type | ProviderClassType | ProviderValueType | ProviderFactoryType; /** * Helper to define factory providers without tuple widening. * Enforces that `useFactory` params follow the `inject()` tokens (order + arity). * * Usage: * const p = AsyncMcpProvider({ * provide: RedisProviderRef, * inject: () => [ExpenseConfigRef, RedisType] as const, * useFactory: async (config, redis) => new RedisProvider(redis), * }); */ export declare function AsyncProvider(cfg: ProviderFactoryType): ProviderFactoryType; //# sourceMappingURL=provider.interface.d.ts.map