import { MlKem1024Base } from "./mlKem1024Base.js";
/**
 * Represents the MlKem1024 class, which extends the MlKem1024Base class.
 *
 * This class extends the MlKem1024Base class and provides specific implementation for MlKem1024.
 *
 * @deprecated Use {@link createMlKem1024} instead. This async class-based API will be removed in a future release.
 *
 * @remarks
 *
 * MlKem1024 is a specific implementation of the ML-KEM key encapsulation mechanism.
 *
 * @example
 *
 * ```ts
 * // Using jsr:
 * import { createMlKem1024 } from "@dajiaji/mlkem";
 * // Using npm:
 * // import { createMlKem1024 } from "mlkem"; // or "crystals-kyber-js"
 *
 * const recipient = await createMlKem1024();
 * const [pkR, skR] = recipient.generateKeyPair();
 *
 * const sender = await createMlKem1024();
 * const [ct, ssS] = sender.encap(pkR);
 *
 * const ssR = recipient.decap(ct, skR);
 * // ssS === ssR
 * ```
 */
export declare class MlKem1024 extends MlKem1024Base {
    /**
     * Constructs a new instance of the MlKem1024 class.
     */
    constructor();
    /**
     * Generates a keypair [publicKey, privateKey].
     *
     * If an error occurred, throws {@link MlKemError}.
     *
     * @returns A kaypair [publicKey, privateKey].
     * @throws {@link MlKemError}
     */
    generateKeyPair(): Promise<[Uint8Array, Uint8Array]>;
    /**
     * Derives a keypair [publicKey, privateKey] deterministically from a 64-octet seed.
     *
     * If an error occurred, throws {@link MlKemError}.
     *
     * @param seed A 64-octet seed for the deterministic key generation.
     * @returns A kaypair [publicKey, privateKey].
     * @throws {@link MlKemError}
     */
    deriveKeyPair(seed: Uint8Array): Promise<[Uint8Array, Uint8Array]>;
    /**
     * Generates a shared secret from the encapsulated ciphertext and the private key.
     *
     * If an error occurred, throws {@link MlKemError}.
     *
     * @param pk A public key.
     * @param seed An optional 32-octet seed for the deterministic shared secret generation.
     * @returns A ciphertext (encapsulated public key) and a shared secret.
     * @throws {@link MlKemError}
     */
    encap(pk: Uint8Array, seed?: Uint8Array): Promise<[Uint8Array, Uint8Array]>;
    /**
     * Generates a ciphertext for the public key and a shared secret.
     *
     * If an error occurred, throws {@link MlKemError}.
     *
     * @param ct A ciphertext generated by {@link encap}.
     * @param sk A private key.
     * @returns A shared secret.
     * @throws {@link MlKemError}
     */
    decap(ct: Uint8Array, sk: Uint8Array): Promise<Uint8Array>;
}
//# sourceMappingURL=mlKem1024.d.ts.map