import { ConnectJwt } from '../types';
import { KeyProvider } from './KeyProvider';
export interface CacheWrapper {
    get(kid: string): Promise<string>;
    set(kid: string, key: string): Promise<void>;
}
export interface CachingKeyProviderArgs {
    provider: KeyProvider;
    cache: CacheWrapper;
}
/**
 * General-purpose implementation that facilitates caching a recent public key in case CDN is inaccessible.
 * Caching is optional and, if used, must be done by the `kid`. Public keys should be rotated often and will get a new
 * kid every time which will then effectively invalidate the cache.
 */
export declare class CachingKeyProvider implements KeyProvider {
    provider: KeyProvider;
    cache: CacheWrapper;
    constructor(provider: KeyProvider, cache: CacheWrapper);
    get(kid: string, unverifiedConnectJwt: ConnectJwt): Promise<string>;
}
//# sourceMappingURL=CachingKeyProvider.d.ts.map