import { Repository } from 'typeorm';
import { BaseAuthProvider } from './base-auth.provider';
import { JwtService } from '../services/jwt.service';
import { NestAuthUser } from '../../user/entities/user.entity';
import { NestAuthIdentity } from '../../user/entities/identity.entity';
import { SocialCredentialsDto } from 'src/lib/auth';
export declare class JwtAuthProvider extends BaseAuthProvider {
    protected readonly userRepository: Repository<NestAuthUser>;
    protected readonly authIdentityRepository: Repository<NestAuthIdentity>;
    private readonly jwtService;
    providerName: string;
    private jwtConfig;
    constructor(userRepository: Repository<NestAuthUser>, authIdentityRepository: Repository<NestAuthIdentity>, jwtService: JwtService);
    validate(credentials: SocialCredentialsDto): Promise<{
        userId: string;
        email: string;
        phone: string;
        metadata: {
            id?: string;
            sub?: string;
            email?: string;
            phone?: string;
            isVerified?: boolean;
            roles?: Partial<import("../../core").NestAuthRole>[];
            tenantId?: string;
            isMfaEnabled?: boolean;
            isMfaVerified?: boolean;
            sessionId?: string;
            type?: "access" | "refresh";
            exp?: number;
            iat?: number;
        };
    }>;
    getRequiredFields(): string[];
}
//# sourceMappingURL=jwt-auth.provider.d.ts.map