import type { Account, Chain, Transport, WalletClient } from 'viem'; import { DecryptionAttestation, EncryptedDecryptionAttestation } from '../attesteddecrypt/types.js'; import { HexString } from '../binary.js'; import { SupportedChainId } from '../chain.js'; import type { EciesScheme, 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 { AttestedComputeOP } from './types.js'; export declare const ATTESTED_COMPUTE_DOMAIN_NAME = "IncoAttestedCompute"; export declare const DEFAULT_ATTESTED_COMPUTE_DOMAIN_VERSION = "2"; /** * Arguments for creating an attested compute. */ export interface IncoLiteAttestedComputeArgs { /** The wallet used to interact with the blockchain and sign the compute request */ walletClient: WalletClient; /** The KMS quorum client instance */ kmsQuorumClient: KmsQuorumClient; /** The chain ID to use */ chainId: SupportedChainId; } /** * Creates an attested compute function that can decrypt handles with an attached attestation from the covalidator. * @param args - The arguments for creating the attested compute function * @returns A function that can perform binary operation on a handle and return an attestation * @throws {AttestedComputeError} If the creation fails * * @todo Support multiple operations in a single request. */ export declare function attestedCompute({ executorAddress, lhsHandle, op, rhsPlaintext, backoffConfig, walletClient, kmsQuorumClient, chainId, reencryptPubKey, reencryptKeypair, }: { executorAddress: HexString; lhsHandle: HexString; op: AttestedComputeOP; rhsPlaintext: bigint | boolean; backoffConfig?: Partial | undefined; walletClient: WalletClient; kmsQuorumClient: KmsQuorumClient; chainId: SupportedChainId; reencryptPubKey: Uint8Array; reencryptKeypair: Secp256k1Keypair; }): Promise>; export declare function attestedCompute({ executorAddress, lhsHandle, op, rhsPlaintext, backoffConfig, walletClient, kmsQuorumClient, chainId, reencryptPubKey, }: { executorAddress: HexString; lhsHandle: HexString; op: AttestedComputeOP; rhsPlaintext: bigint | boolean; backoffConfig?: Partial | undefined; walletClient: WalletClient; kmsQuorumClient: KmsQuorumClient; chainId: SupportedChainId; reencryptPubKey: Uint8Array; reencryptKeypair?: never; }): Promise>; export declare function attestedCompute({ executorAddress, lhsHandle, op, rhsPlaintext, backoffConfig, walletClient, kmsQuorumClient, chainId, }: { executorAddress: HexString; lhsHandle: HexString; op: AttestedComputeOP; rhsPlaintext: bigint | boolean; backoffConfig?: Partial | undefined; walletClient: WalletClient; kmsQuorumClient: KmsQuorumClient; chainId: SupportedChainId; reencryptPubKey?: never; reencryptKeypair?: never; }): Promise>;