/**
 * @license
 * Copyright 2020 Google LLC
 * SPDX-License-Identifier: Apache-2.0
 */
import * as EllipticCurves from './elliptic_curves';
/**
 * HKDF-based ECIES-KEM (key encapsulation mechanism) for ECIES recipient.
 */
export declare class EciesHkdfKemRecipient {
    private readonly privateKey_;
    constructor(privateKey: CryptoKey);
    /**
     * @param kemToken the public ephemeral point.
     * @param keySizeInBytes The length of the generated pseudorandom
     *     string in bytes. The maximal size is 255 * DigestSize, where DigestSize
     *     is the size of the underlying HMAC.
     * @param pointFormat The format of the
     *     public ephemeral point.
     * @param hkdfHash the name of the hash function. Accepted names are
     *     SHA-1, SHA-256 and SHA-512.
     * @param hkdfInfo Context and application specific
     *     information (can be a zero-length array).
     * @param opt_hkdfSalt Salt value (a non-secret random
     *     value). If not provided, it is set to a string of hash length zeros.
     * @return The KEM key and token.
     */
    decapsulate(kemToken: Uint8Array, keySizeInBytes: number, pointFormat: EllipticCurves.PointFormatType, hkdfHash: string, hkdfInfo: Uint8Array, opt_hkdfSalt?: Uint8Array): Promise<Uint8Array>;
}
export declare function fromJsonWebKey(jwk: JsonWebKey): Promise<EciesHkdfKemRecipient>;
