import type { Account, Chain, PublicClient, Transport, WalletClient } from 'viem'; import { type HexString } from '../binary.js'; import { type SupportedChainId } from '../chain.js'; import { type EciesScheme, type SupportedFheType } from '../encryption/encryption.js'; import { KmsQuorumClient } from '../kms/quorumClient.js'; import type { Secp256k1Keypair } from '../lite/ecies.js'; import type { BackoffConfig } from '../retry.js'; import { type DecryptionAttestation, type EncryptedDecryptionAttestation } from './types.js'; export declare const ATTESTED_DECRYPT_DOMAIN_NAME = "IncoAttestedDecrypt"; export declare const DEFAULT_ATTESTED_DECRYPT_DOMAIN_VERSION = "2"; export declare const TEST_RPC_URL = "UNUSED IN TEST"; /** * Arguments for creating an attested decrypt request. */ export interface IncoLiteAttestedDecryptorArgs { /** The wallet used to interact with the blockchain and sign the decrypt request */ walletClient: WalletClient; /** The KMS quorum client instance */ kmsQuorumClient: KmsQuorumClient; /** The chain ID to use */ chainId: SupportedChainId; } /** * Decrypt multiple handles in a single attested request without wallet authentication. * Returns an array of attestations aligned with the response ordering. * * @param args - The arguments for creating the attested decrypt function * @returns A function that can decrypt handles and return an attestation * @throws {AttestedDecryptError} If the creation fails */ export declare function attestedDecrypt({ handles, backoffConfig, chainId, kmsQuorumClient, executorAddress, }: { handles: HexString[]; backoffConfig?: Partial | undefined; chainId: SupportedChainId; kmsQuorumClient: KmsQuorumClient; executorAddress: HexString; }): Promise>>; /** * Decrypt multiple handles in a single attested request. * Returns an array of attestations aligned with the response ordering. * * @param args - The arguments for creating the attested decrypt function * @returns A function that can decrypt handles and return an attestation * @throws {AttestedDecryptError} If the creation fails */ export declare function attestedDecrypt({ handles, backoffConfig, walletClient, chainId, reencryptPubKey, reencryptKeypair, kmsQuorumClient, executorAddress, }: { handles: HexString[]; backoffConfig?: Partial | undefined; walletClient: WalletClient; chainId: SupportedChainId; reencryptPubKey: Uint8Array; reencryptKeypair: Secp256k1Keypair; kmsQuorumClient: KmsQuorumClient; executorAddress: HexString; }): Promise>>; /** * Decrypt multiple handles in a single attested request. * Returns an array of attestations aligned with the response ordering. * * @param args - The arguments for creating the attested decrypt function * @returns A function that can decrypt handles and return an attestation * @throws {AttestedDecryptError} If the creation fails */ export declare function attestedDecrypt({ handles, backoffConfig, walletClient, chainId, reencryptPubKey, kmsQuorumClient, executorAddress, }: { handles: HexString[]; backoffConfig?: Partial | undefined; walletClient: WalletClient; chainId: SupportedChainId; reencryptPubKey: Uint8Array; reencryptKeypair?: never; kmsQuorumClient: KmsQuorumClient; executorAddress: HexString; }): Promise>>; /** * Decrypt multiple handles in a single attested request. * Returns an array of attestations aligned with the response ordering. * * @param args - The arguments for creating the attested decrypt function * @returns A function that can decrypt handles and return an attestation * @throws {AttestedDecryptError} If the creation fails */ export declare function attestedDecrypt({ handles, backoffConfig, walletClient, chainId, kmsQuorumClient, executorAddress, }: { handles: HexString[]; backoffConfig?: Partial | undefined; walletClient: WalletClient; chainId: SupportedChainId; reencryptPubKey?: never; reencryptKeypair?: never; kmsQuorumClient: KmsQuorumClient; executorAddress: HexString; }): Promise>>; export declare function fetchEip712DomainVersion(executorAddress: HexString | undefined, defaultVersion: string, walletClient?: WalletClient | PublicClient): Promise; export declare function decryptEncryptedAttestations(attestations: Array | EncryptedDecryptionAttestation>, reencryptKeypair: Secp256k1Keypair): Promise>>; /** * Validates a handle format. * @param handle - The handle to validate * @throws {AttestedDecryptError} If the handle format is invalid */ export declare function validateHandle(handle: HexString): void;