/**
 * converter.js
 */
import { DER, JwkExportOptionsInternal, KeyExportOptions, OctetEC, PEM } from './typedef';
/**
 * Convert JWK to ASN.1 (for RSA and EC) and Octet (for EC) encoded keys.
 * @param {'pem'|'der'|'oct'} output - 'pem', 'der', or 'oct' (only EC JWK), output format.
 * @param {JsonWebKey} jwkey - A JWK to be encoded.
 * @param {KeyExportOptions} options - Options to export key including encryption options.
 *   For EC JWK : options.compact = true or false
 *   For EC JWK with output = 'oct' : options.format = 'binary' or 'string'
 *   For both: outputPublic (optional) : boolean. derived key type. from private key, public key can be derived when true.
 * @return {PEM|DER|OctetEC} - Output key object.
 */
export declare const fromJwkTo: (output: string | undefined, jwkey: JsonWebKey, options?: KeyExportOptions) => Promise<PEM | DER | OctetEC>;
/**
 * Convert ASN.1 encoded (for RSA and EC) or octet formed (for EC) keys to JWK.
 * @param {'pem'|'der'|'oct'} input - 'pem', 'der' or 'oct', input key format.
 * @param {PEM|DER|OctetEC} key - A key object to be encoded.
 * @param {JwkExportOptionsInternal} [options={}] - options to export JWK keys.
 * @return {JsonWebKey} - Obtained key object in JWK format.
 * @throws {Error} - Throws if InvalidInputForm, InappropriateOptions, outputPublicMustBeBoolean or UnsupportedConversion
 */
export declare const toJwkFrom: (input: 'pem' | 'der' | 'oct', key: PEM | DER | OctetEC, options?: JwkExportOptionsInternal) => Promise<JsonWebKey>;
