import { type ClassToken, type ClassType, type FactoryType, type Token, type Type, type ValueType } from '@frontmcp/di'; import { type AuthProviderMetadata } from '../metadata'; export interface AuthProviderInterface { headers(): Record; refreshToken?(): Promise; } export type AuthProviderClassType = ClassType & AuthProviderMetadata; export type AuthProviderValueType = ValueType & AuthProviderMetadata; export type AuthProviderFactoryType = FactoryType & AuthProviderMetadata; export type AuthProviderType = Type | AuthProviderClassType | AuthProviderValueType | AuthProviderFactoryType; /** * 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 AsyncAuthProvider(cfg: AuthProviderFactoryType): AuthProviderFactoryType; //# sourceMappingURL=auth-provider.interface.d.ts.map