import type { KdfInterface } from "../interfaces/kdfInterface.js";
import type { KemId } from "../identifiers.js";
import type { KemInterface } from "../interfaces/kemInterface.js";
import type { DhkemPrimitives } from "../interfaces/dhkemPrimitives.js";
import type { SenderContextParams } from "../interfaces/senderContextParams.js";
import type { RecipientContextParams } from "../interfaces/recipientContextParams.js";
export declare class Dhkem implements KemInterface {
    readonly id: KemId;
    readonly secretSize: number;
    readonly encSize: number;
    readonly publicKeySize: number;
    readonly privateKeySize: number;
    protected _prim: DhkemPrimitives;
    protected _kdf: KdfInterface;
    constructor(id: KemId, prim: DhkemPrimitives, kdf: KdfInterface);
    serializePublicKey(key: CryptoKey): Promise<ArrayBuffer>;
    deserializePublicKey(key: ArrayBufferLike | ArrayBufferView): Promise<CryptoKey>;
    serializePrivateKey(key: CryptoKey): Promise<ArrayBuffer>;
    deserializePrivateKey(key: ArrayBufferLike | ArrayBufferView): Promise<CryptoKey>;
    importKey(format: "raw" | "jwk", key: ArrayBuffer | JsonWebKey, isPublic?: boolean): Promise<CryptoKey>;
    generateKeyPair(): Promise<CryptoKeyPair>;
    deriveKeyPair(ikm: ArrayBufferLike | ArrayBufferView): Promise<CryptoKeyPair>;
    encap(params: SenderContextParams): Promise<{
        sharedSecret: ArrayBuffer;
        enc: ArrayBuffer;
    }>;
    decap(params: RecipientContextParams): Promise<ArrayBuffer>;
    private _generateSharedSecret;
}
//# sourceMappingURL=dhkem.d.ts.map