import { default as Long } from 'long';
import { TlPublicKey } from '../../tl/binary/rsa-keys.js';
import { ICryptoProvider } from './abstract.js';
/**
 * Parse PEM-encoded RSA public key information into modulus and exponent
 * and compute its fingerprint as defined by MTProto.
 *
 * @param crypto  Crypto provider
 * @param key  PEM-encoded RSA public key
 * @param old  Whether this is an "old" key
 */
export declare function parsePublicKey(crypto: ICryptoProvider, key: string, old?: boolean): TlPublicKey;
/**
 * Add public key to the global index.
 *
 * @param crypto  Crypto provider
 * @param key  PEM-encoded RSA public key
 * @param old  Whether this is an "old" key
 */
export declare function addPublicKey(crypto: ICryptoProvider, key: string, old?: boolean): void;
/**
 * Get public key by its fingerprint.
 *
 * @param fingerprints  Fingerprints to match. The first one to match is returned.
 * @param allowOld  Whether to allow "old" keys
 */
export declare function findKeyByFingerprints(fingerprints: (string | Long)[], allowOld?: boolean): TlPublicKey | null;
