import { type ClassType, type Token, type Type, type ValueType } from '@frontmcp/di'; import { type FrontMcpAuth } from '../interfaces'; import { type AuthProviderMetadata } from '../metadata'; import { type AuthOptions } from '../types'; export declare enum AuthProviderKind { CLASS_TOKEN = "CLASS_TOKEN", CLASS = "CLASS", VALUE = "VALUE", FACTORY = "FACTORY", PRIMARY = "PRIMARY" } export interface AuthProviderClassTokenRecord { kind: AuthProviderKind.CLASS_TOKEN; provide: Type; metadata: AuthProviderMetadata; } export interface AuthProviderClassRecord extends ClassType { kind: AuthProviderKind.CLASS; metadata: AuthProviderMetadata; } export interface AuthProviderValueRecord extends ValueType { kind: AuthProviderKind.VALUE; metadata: AuthProviderMetadata; } export interface AuthProviderFactoryRecord { kind: AuthProviderKind.FACTORY; provide: Token; inject: () => readonly Token[]; useFactory: (...args: any[]) => any | Promise; metadata: AuthProviderMetadata; } export type PrimaryAuthRecord = { kind: AuthProviderKind.PRIMARY; provide: Token; useValue: FrontMcpAuth; metadata: AuthOptions; }; export type AuthProviderRecord = AuthProviderClassTokenRecord | AuthProviderClassRecord | AuthProviderValueRecord | AuthProviderFactoryRecord | PrimaryAuthRecord; //# sourceMappingURL=auth-provider.record.d.ts.map