/* tslint:disable */ /* eslint-disable */ /** * A function to encrypt a u64 value using BFV and default params. * * # Arguments * * * `data` - The data to encrypt - must be a u64 * * `public_key` - The public key to be used for encryption * * `degree` - Polynomial degree for BFV parameters * * `plaintext_modulus` - Plaintext modulus for BFV parameters * * `moduli` - Modulus for BFV parameters * * # Returns * * Returns a `Result, JsValue>` containing the encrypted data and any errors. * * # Panics * * Panics if the data cannot be encrypted */ export function bfv_encrypt_number(data: bigint, public_key: Uint8Array, degree: number, plaintext_modulus: bigint, moduli: BigUint64Array): Uint8Array; /** * A function to encrypt a Vec value using BFV and default params. * * # Arguments * * * `data` - The data to encrypt - must be a Vec * * `public_key` - The public key to be used for encryption * * `degree` - Polynomial degree for BFV parameters * * `plaintext_modulus` - Plaintext modulus for BFV parameters * * `moduli` - Modulus for BFV parameters * * # Returns * * Returns a `Result, JsValue>` containing the encrypted data and any errors. * * # Panics * * Panics if the data cannot be encrypted */ export function bfv_encrypt_vector(data: BigUint64Array, public_key: Uint8Array, degree: number, plaintext_modulus: bigint, moduli: BigUint64Array): Uint8Array; /** * A function to encrypt a u64 value using BFV and default params and * generate circuit inputs for Greco * * # Arguments * * * `data` - The data to encrypt - must be a u64 * * `public_key` - The public key to be used for encryption * * `degree` - Polynomial degree for BFV parameters * * `plaintext_modulus` - Plaintext modulus for BFV parameters * * `moduli` - Modulus for BFV parameters * * # Returns * * Returns a `Result, JsValue>` containing the encrypted data, circuit inputs and any errors. * * # Panics * * Panics if the data cannot be encrypted */ export function bfv_verifiable_encrypt_number(data: bigint, public_key: Uint8Array, degree: number, plaintext_modulus: bigint, moduli: BigUint64Array): any[]; /** * A function to encrypt a Vec value using BFV and default params and * generate circuit inputs for Greco * * # Arguments * * * `data` - The data to encrypt - must be a Vec * * `public_key` - The public key to be used for encryption * * `degree` - Polynomial degree for BFV parameters * * `plaintext_modulus` - Plaintext modulus for BFV parameters * * `moduli` - Modulus for BFV parameters * * # Returns * * Returns a `Result, JsValue>` containing the encrypted data, circuit inputs and any errors. * * # Panics * * Panics if the data cannot be encrypted */ export function bfv_verifiable_encrypt_vector(data: BigUint64Array, public_key: Uint8Array, degree: number, plaintext_modulus: bigint, moduli: BigUint64Array): any[]; /** * Compute the SAFE commitment for serialized BFV ciphertext bytes. */ export function compute_ct_commitment(ciphertext: Uint8Array, degree: number, plaintext_modulus: bigint, moduli: BigUint64Array): Uint8Array; /** * A function to compute the public key commitment for a given public key. * * # Arguments * * * `public_key` - The public key to compute the commitment for * * # Returns * Returns a `Result, JsValue>` containing the commitment and any errors. * * # Panics * * Panics if the public key cannot be computed */ export function compute_pk_commitment(public_key: Uint8Array, degree: number, plaintext_modulus: bigint, moduli: BigUint64Array): Uint8Array; /** * Generate a public key from JavaScript. */ export function generate_public_key(degree: number, plaintext_modulus: bigint, moduli: BigUint64Array): Uint8Array; /** * Retrieves a BFV parameter set by name. * * # Parameters * * `name` - Parameter set identifier (e.g., "SECURE_THRESHOLD_8192") * * # Returns * A JavaScript object with the following structure: * ```typescript * { * degree: number; // Polynomial degree (e.g., 8192) * plaintext_modulus: number; // Plaintext modulus value (e.g., 1000) * moduli: bigint[]; // Array of moduli * error1_variance: string | null; // Error variance as string or null * } * ``` * * # Errors * Returns error if the parameter set name is invalid or serialization fails. */ export function get_bfv_params(name: string): any; /** * Returns all available BFV parameter set identifiers. * * # Returns * Array of parameter set names that can be passed to `get_bfv_params()`. * Includes both production-ready sets (e.g., "SECURE_THRESHOLD_8192") and * insecure sets for testing (prefixed with "INSECURE_"). */ export function get_bfv_params_list(): string[]; export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module; export interface InitOutput { readonly memory: WebAssembly.Memory; readonly bfv_encrypt_number: (a: bigint, b: number, c: number, d: number, e: bigint, f: number, g: number) => [number, number, number, number]; readonly bfv_encrypt_vector: (a: number, b: number, c: number, d: number, e: number, f: bigint, g: number, h: number) => [number, number, number, number]; readonly bfv_verifiable_encrypt_number: (a: bigint, b: number, c: number, d: number, e: bigint, f: number, g: number) => [number, number, number, number]; readonly bfv_verifiable_encrypt_vector: (a: number, b: number, c: number, d: number, e: number, f: bigint, g: number, h: number) => [number, number, number, number]; readonly compute_ct_commitment: (a: number, b: number, c: number, d: bigint, e: number, f: number) => [number, number, number, number]; readonly compute_pk_commitment: (a: number, b: number, c: number, d: bigint, e: number, f: number) => [number, number, number, number]; readonly generate_public_key: (a: number, b: bigint, c: number, d: number) => [number, number, number, number]; readonly get_bfv_params: (a: number, b: number) => [number, number, number]; readonly get_bfv_params_list: () => [number, number]; readonly __wbindgen_malloc: (a: number, b: number) => number; readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number; readonly __wbindgen_exn_store: (a: number) => void; readonly __externref_table_alloc: () => number; readonly __wbindgen_externrefs: WebAssembly.Table; readonly __wbindgen_free: (a: number, b: number, c: number) => void; readonly __externref_table_dealloc: (a: number) => void; readonly __externref_drop_slice: (a: number, b: number) => void; readonly __wbindgen_start: () => void; } export type SyncInitInput = BufferSource | WebAssembly.Module; /** * Instantiates the given `module`, which can either be bytes or * a precompiled `WebAssembly.Module`. * * @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated. * * @returns {InitOutput} */ export function initSync(module: { module: SyncInitInput } | SyncInitInput): InitOutput; /** * If `module_or_path` is {RequestInfo} or {URL}, makes a request and * for everything else, calls `WebAssembly.instantiate` directly. * * @param {{ module_or_path: InitInput | Promise }} module_or_path - Passing `InitInput` directly is deprecated. * * @returns {Promise} */ export default function __wbg_init (module_or_path?: { module_or_path: InitInput | Promise } | InitInput | Promise): Promise;