import { Repository } from 'typeorm';
import { BaseAuthProvider } from './base-auth.provider';
import { NestAuthUser } from '../../user/entities/user.entity';
import { NestAuthIdentity } from '../../user/entities/identity.entity';
import { JwtService } from '../services/jwt.service';
import { SocialCredentialsDto } from '../../auth/dto/credentials/social-credentials.dto';
export declare class AppleAuthProvider extends BaseAuthProvider {
    protected readonly userRepository: Repository<NestAuthUser>;
    protected readonly authIdentityRepository: Repository<NestAuthIdentity>;
    private readonly jwtService;
    providerName: string;
    skipMfa: boolean;
    private appleConfig;
    private appleAuth?;
    private jwksCache?;
    constructor(userRepository: Repository<NestAuthUser>, authIdentityRepository: Repository<NestAuthIdentity>, jwtService: JwtService);
    validate(credentials: SocialCredentialsDto): Promise<{
        userId: any;
        email: any;
        metadata: any;
    }>;
    getRequiredFields(): string[];
    private verifyIdentityToken;
    private getApplePublicKey;
    private findJwk;
    private refreshJwks;
    private exchangeAuthorizationCode;
    private safeDecode;
}
//# sourceMappingURL=apple-auth.provider.d.ts.map