import type { X25519KeyPair, Falcon512KeyPair, MLKEMKeyPair } from "./types.js";
export declare function generateRandomBytes(length: number): Uint8Array;
export declare function generateX25519KeyPair(): X25519KeyPair;
export declare function x25519DH(privateKey: Uint8Array, publicKey: Uint8Array): Uint8Array;
export declare function generateFalcon512KeyPair(): Falcon512KeyPair;
export declare function falcon512Sign(privateKey: Uint8Array, message: Uint8Array): Uint8Array;
export declare function falcon512Verify(publicKey: Uint8Array, message: Uint8Array, signature: Uint8Array): boolean;
export declare function generateMLKEMKeyPair(): MLKEMKeyPair;
export declare function mlkemEncapsulate(publicKey: Uint8Array): {
    ciphertext: Uint8Array;
    sharedSecret: Uint8Array;
};
export declare function mlkemDecapsulate(ciphertext: Uint8Array, secretKey: Uint8Array): Uint8Array;
export declare function hkdfDerive(inputKeyMaterial: Uint8Array, info: Uint8Array, length: number, salt?: Uint8Array): Uint8Array;
export declare function hkdfChainKey(chainKey: Uint8Array, dhOutput: Uint8Array): {
    rootKey: Uint8Array;
    chainKey: Uint8Array;
};
export declare function hkdfMessageKey(chainKey: Uint8Array): {
    messageKey: Uint8Array;
    nextChainKey: Uint8Array;
};
export declare function hmacSha256(key: Uint8Array, data: Uint8Array): Uint8Array;
export declare function aesGcmEncrypt(key: Uint8Array, plaintext: Uint8Array, associatedData: Uint8Array): {
    ciphertext: Uint8Array;
    iv: Uint8Array;
    tag: Uint8Array;
};
export declare function aesGcmDecrypt(key: Uint8Array, ciphertext: Uint8Array, iv: Uint8Array, tag: Uint8Array, associatedData: Uint8Array): Uint8Array;
export declare function sha256Hash(data: Uint8Array): Uint8Array;
export declare function constantTimeEqual(a: Uint8Array, b: Uint8Array): boolean;
export declare function bytesToBase64(bytes: Uint8Array): string;
export declare function base64ToBytes(base64: string): Uint8Array;
export declare function bytesToHex(bytes: Uint8Array): string;
export declare function hexToBytes(hex: string): Uint8Array;
export declare function concatBytes(...arrays: Uint8Array[]): Uint8Array;
export declare function deriveRegistrationId(publicKey: Uint8Array): number;
export declare function generateX25519BindingSignature(falcon512PrivateKey: Uint8Array, x25519PublicKey: Uint8Array): Uint8Array;
export declare function verifyX25519BindingSignature(falcon512PublicKey: Uint8Array, x25519PublicKey: Uint8Array, signature: Uint8Array): boolean;
