import type { Account, Chain, Transport, WalletClient } from 'viem'; import { type HexString } from '../binary.js'; import { type SupportedChainId } from '../chain.js'; import { EncryptionScheme, type SupportedTeeType } from '../encryption/encryption.js'; import { type HandleWithProof } from '../generated/es/inco/kms/lite/v1/types_pb.js'; import { validateHandle } from '../handle.js'; import { KmsQuorumClient } from '../kms/quorumClient.js'; import type { XwingKeypair } from '../lite/xwing.js'; import type { BackoffConfig } from '../retry.js'; import { type DecryptionAttestation, type EncryptedDecryptionAttestation } from './types.js'; export { validateHandle }; export declare const ATTESTED_DECRYPT_DOMAIN_NAME = "IncoAttestedDecrypt"; /** * 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. * 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: XwingKeypair; 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>>; export declare function buildHandlesWithProofs(handles: HexString[]): Array; export declare function decryptEncryptedAttestations(attestations: Array | EncryptedDecryptionAttestation>, reencryptKeypair: XwingKeypair): Promise>>;