interface KeyPair {
    get(key: 'public_key' | 'private_key'): any;
}
interface EncryptResult {
    get(key: 'cyphertext' | 'secret'): any;
}
interface IMlKem {
    keypair(): KeyPair;
    encrypt(public_key: any): EncryptResult;
    decrypt(cyphertext: any, private_key: any): any;
    buffer_to_string(buffer: any): string;
    encryptMessage(message: string, secret: any): Promise<Uint8Array>;
    decryptMessage(encryptedMessage: Uint8Array, secret: any): Promise<string>;
    delete(): void;
}

declare function loadMlKem1024(): Promise<IMlKem>;
declare function loadMlKem768(): Promise<IMlKem>;
declare function loadMlKem512(): Promise<IMlKem>;

export { loadMlKem1024, loadMlKem512, loadMlKem768 };
