import { Repository } from 'typeorm'; import { NestAuthUser } from '../../user/entities/user.entity'; import { NestAuthIdentity } from '../../user/entities/identity.entity'; import { IAuthModuleOptions } from '../interfaces/auth-module-options.interface'; import { NestAuthLoginRequestDto } from '../../auth/dto/requests/login.request.dto'; export interface AuthProviderUser { userId: string; email?: string; phone?: string; username?: string; metadata?: Record; emailVerified?: boolean; phoneVerified?: boolean; } export type LinkUserWith = 'email' | 'phone'; export declare abstract class BaseAuthProvider { abstract providerName: string; skipMfa: boolean; private explicitEnabled?; get enabled(): boolean; set enabled(value: boolean); protected resolveEnabled(): boolean; get options(): IAuthModuleOptions; protected userRepository: Repository; protected authIdentityRepository: Repository; constructor(userRepository?: Repository, authIdentityRepository?: Repository); attachRepositories(userRepository: Repository, authIdentityRepository: Repository): void; linkToUser(userId: string, providerId: string, metadata?: Record): Promise; findIdentityByUserId(userId: string): Promise; findIdentity(providerId: string, tenantId?: string): Promise; findLinkedIdentity(validated: AuthProviderUser): Promise; abstract validate(credentials: NestAuthLoginRequestDto['credentials'], tenantId?: string): Promise; abstract getRequiredFields(): string[]; linkUserWith(): LinkUserWith; protected profileOverridesFromCredentials(credentials: any): Record; } //# sourceMappingURL=base-auth.provider.d.ts.map