import { BlsVariant, EcdsaVariant } from './pkg/wasm-internal';
export type { BlsVariant, EcdsaVariant } from './pkg/wasm-internal';
/**
 * Combines bls signature shares to decrypt
 *
 * Supports:
 * - 12381G2
 * - 12381G1
 * @param {BlsVariant} variant
 * @param {(Uint8Array)[]} signature_shares
 * @returns {Uint8Array}
 */
export declare function blsCombine(variant: BlsVariant, signature_shares: Uint8Array[]): Promise<Uint8Array>;
/**
 * Uses a combined BLS signature to decrypt with the
 * given ciphertext from {@link blsEncrypt}
 *
 * Supports:
 * - 12381G2
 * - 12381G1
 * @param {BlsVariant} variant
 * @param {Uint8Array} ciphertext
 * @param {Uint8Array} decryption_key
 * @returns {Uint8Array}
 */
export declare function blsDecrypt(variant: BlsVariant, ciphertext: Uint8Array, decryption_key: Uint8Array): Promise<Uint8Array>;
/**
 * Used for BLS encryption
 *
 * Supports:
 * - 12381G2
 * - 12381G1
 * @param {BlsVariant} variant
 * @param {Uint8Array} encryption_key
 * @param {Uint8Array} message
 * @param {Uint8Array} identity
 * @returns {Uint8Array}
 */
export declare function blsEncrypt(variant: BlsVariant, encryption_key: Uint8Array, message: Uint8Array, identity: Uint8Array): Promise<Uint8Array>;
/**
 * Verifies a BLS signature
 *
 * Supports:
 * - 12381G2
 * - 12381G1
 * @param {BlsVariant} variant
 * @param {Uint8Array} public_key
 * @param {Uint8Array} message
 * @param {Uint8Array} signature
 */
export declare function blsVerify(variant: BlsVariant, public_key: Uint8Array, message: Uint8Array, signature: Uint8Array): Promise<void>;
/**
 * Combine ECDSA signatures shares
 *
 * Supports:
 *  - K256
 *  - P256
 * @param {EcdsaVariant} variant
 * @param {Uint8Array} presignature
 * @param {(Uint8Array)[]} signature_shares
 * @returns {[Uint8Array, Uint8Array, number]}
 */
export declare function ecdsaCombine(variant: EcdsaVariant, presignature: Uint8Array, signature_shares: Uint8Array[]): Promise<[Uint8Array, Uint8Array, number]>;
/**
 * HD key derivation
 *
 * Supports:
 * - k256
 * - p256
 * @param {EcdsaVariant} variant ecdsa scheme
 * @param {Uint8Array} id keyid which will be used for the key derivation
 * @param {(Uint8Array)[]} public_keys ecdsa root keys
 * @returns {Uint8Array}
 */
export declare function ecdsaDeriveKey(variant: EcdsaVariant, id: Uint8Array, public_keys: Uint8Array[]): Promise<Uint8Array>;
/**
 * Verifier for ECDSA signatures
 *
 * Supports:
 * - k256
 * - p256
 ** Note ** Not currently supported through the lit network. Please use other ECSDSA signature verification
 * @param {EcdsaVariant} variant
 * @param {Uint8Array} message_hash
 * @param {Uint8Array} public_key
 * @param {[Uint8Array, Uint8Array, number]} signature
 */
export declare function ecdsaVerify(variant: EcdsaVariant, message_hash: Uint8Array, public_key: Uint8Array, signature: [Uint8Array, Uint8Array, number]): Promise<void>;
/**
 * Combiner and verifier for ECDSA signatures
 *
 * Supports:
 * - k256
 * - p256
 *  ** Note ** Not currently supported through the lit network. Please use other ECSDSA signature verification
 * @param {EcdsaVariant} variant
 * @param {Uint8Array} pre_signature
 * @param {Uint8Array[]} signature_shares
 * @param {Uint8Array} message_hash
 * @param {Uint8Array} public_key
 * @param {[Uint8Array, Uint8Array, number]} signature
 */
export declare function ecdsaCombnieAndVerify(variant: EcdsaVariant, pre_signature: Uint8Array, signature_shares: Uint8Array[], message_hash: Uint8Array, public_key: Uint8Array): Promise<[Uint8Array, Uint8Array, number]>;
/**
 * Gets the vcek url for the given attestation report.  You can fetch this certificate yourself, and pass it in to verify_attestation_report
 * @param {Uint8Array} attestation_report
 * @returns {string}
 */
export declare function sevSnpGetVcekUrl(attestation_report: Uint8Array): Promise<string>;
/**
 * Checks attestation from a node with AMD certs
 * @param {Uint8Array} attestation_report
 * @param {Record<string, Uint8Array>} attestation_data
 * @param {(Uint8Array)[]} signatures
 * @param {Uint8Array} challenge
 * @param {Uint8Array} vcek_certificate
 * @returns {Promise<void>}
 */
export declare function sevSnpVerify(attestation_report: Uint8Array, attestation_data: Record<string, Uint8Array>, signatures: Uint8Array[], challenge: Uint8Array, vcek_certificate: Uint8Array): Promise<void>;
