import { JwtHeader, JwtPayload, SigningKeyCallback } from 'jsonwebtoken';
import jwksClient from 'jwks-rsa';
import { AuthProviderConfig, AuthUserInfo } from '@memberjunction/core';
import { IAuthProvider } from './IAuthProvider.js';
export declare abstract class BaseAuthProvider implements IAuthProvider {
    name: string;
    issuer: string;
    audience: string;
    jwksUri: string;
    protected config: AuthProviderConfig;
    protected jwksClient: jwksClient.JwksClient;
    constructor(config: AuthProviderConfig);
    validateConfig(): boolean;
    getSigningKey(header: JwtHeader, callback: SigningKeyCallback): void;
    private getSigningKeyWithRetry;
    matchesIssuer(issuer: string): boolean;
    abstract extractUserInfo(payload: JwtPayload): AuthUserInfo;
}
//# sourceMappingURL=BaseAuthProvider.d.ts.map