import { Signer as Signer$1 } from 'ethersV6'; import { Signer, ContractTransaction } from 'ethers'; import { ContractOptions, TransferHolderParams, TransactionOptions, TransferBeneficiaryParams, TransferOwnersParams, NominateParams } from './types.js'; import '../utils/supportedChains/index.js'; import '../utils/gasStation/index.js'; import '../utils/network/index.js'; /** * Transfers holder role of a Title Escrow contract to a new address. * The caller of this function must be the current holder. * @param {ContractOptions} contractOptions - Contains `tokenRegistryAddress` and optionally `tokenId` and `titleEscrowAddress`. * @param {Signer | SignerV6} signer - The signer (ethers v5 or v6) who initiates the transaction. * @param {TransferHolderParams} params - Object containing `holderAddress` (address to transfer to) and optional `remarks`. * @param {TransactionOptions} options - Transaction options including: * - `titleEscrowVersion` (optional): Either "v4" or "v5" * - `chainId` (optional): Used for gas station lookup * - `maxFeePerGas` (optional), `maxPriorityFeePerGas` (optional): EIP-1559 gas fee configuration * - `id` (optional): ID used for encrypting remarks * @throws If required fields like `titleEscrowAddress` or `signer.provider` are missing. * @throws If the version is unsupported (neither v4 nor v5). * @throws If the dry-run via `callStatic` fails. * @returns {Promise} The transaction response for `transferHolder`. */ declare const transferHolder: (contractOptions: ContractOptions, signer: Signer | Signer$1, params: TransferHolderParams, options: TransactionOptions) => Promise; /** * Transfers the beneficiary role of a Title Escrow contract to a new beneficiary address. * The caller of this function must be the current holder. * @param {ContractOptions} contractOptions - Contains `tokenRegistryAddress` and optionally `tokenId` and `titleEscrowAddress`. * @param {Signer | SignerV6} signer - The signer (ethers v5 or v6) who initiates and signs the transaction. * @param {TransferBeneficiaryParams} params - Object containing: * - `newBeneficiaryAddress`: Address to which the beneficiary role is being transferred. * - `remarks` (optional): Optional encrypted message attached with the transaction. * @param {TransactionOptions} options - Transaction configuration options: * - `titleEscrowVersion` (optional): Token registry version, either `'v4'` or `'v5'`. * - `chainId` (optional): Used to query gas station info if gas fee values are missing. * - `maxFeePerGas`(optional), `maxPriorityFeePerGas`(optional): EIP-1559 gas fee parameters. * - `id`(optional): Used for encryption of remarks. * @throws If required values like `titleEscrowAddress` or `signer.provider` are missing. * @throws If the version is unsupported (neither v4 nor v5). * @throws If the dry-run `callStatic` fails for pre-checking the transaction. * @returns {Promise} The transaction response for the `transferBeneficiary` call. */ declare const transferBeneficiary: (contractOptions: ContractOptions, signer: Signer | Signer$1, params: TransferBeneficiaryParams, options: TransactionOptions) => Promise; /** * Transfers both the holder and beneficiary roles of a Title Escrow contract to new addresses. * The caller of this function must be the current holder and beneficiary both. * @param {ContractOptions} contractOptions - Contains `tokenRegistryAddress` and optionally `tokenId` and `titleEscrowAddress`. * @param {Signer | SignerV6} signer - The signer (ethers v5 or v6) who initiates and signs the transaction. * @param {TransferOwnersParams} params - Object containing: * - `newBeneficiaryAddress`: The new beneficiary address. * - `newHolderAddress`: The new holder address. * - `remarks` (optional): Optional remarks that will be encrypted and included with the transaction. * @param {TransactionOptions} options - Transaction configuration options: * - `titleEscrowVersion` (optional): Token registry version, either `'v4'` or `'v5'`. * - `chainId` (optional): Used for gas station lookup if gas fee values are not provided. * - `maxFeePerGas`(optional), `maxPriorityFeePerGas`(optional): EIP-1559 gas fee parameters. * - `id`(optional): Used for encrypting remarks. * @throws If required fields like `titleEscrowAddress` or `signer.provider` are missing. * @throws If the title escrow version is unsupported. * @throws If the pre-check `callStatic.transferOwners` fails. * @returns {Promise} The transaction response from the `transferOwners` call. */ declare const transferOwners: (contractOptions: ContractOptions, signer: Signer | Signer$1, params: TransferOwnersParams, options: TransactionOptions) => Promise; /** * Nominates a new beneficiary on the Title Escrow contract. * The caller of this function must be the current beneficiary. * @param {ContractOptions} contractOptions - Contains `tokenRegistryAddress` and optionally `tokenId` and `titleEscrowAddress`. * @param {Signer | SignerV6} signer - The signer (ethers v5 or v6) who will sign and send the transaction. * @param {NominateParams} params - Nomination parameters: * - `newBeneficiaryAddress`: The Ethereum address to nominate as the new beneficiary. * - `remarks` (optional): Remarks to include with the transaction (will be encrypted). * @param {TransactionOptions} options - Transaction-level configuration: * - `titleEscrowVersion` (optional): Specifies token registry version, either `'v4'` or `'v5'`. * - `chainId` (optional): Chain ID used for querying gas stations if fees are not set. * - `maxFeePerGas`(optional), `maxPriorityFeePerGas`(optional): EIP-1559-compatible gas fee settings. * - `id`(optional): Used for encrypting the remarks string. * @throws If required inputs like `titleEscrowAddress` or `signer.provider` are missing. * @throws If token registry version is unsupported. * @throws If the dry-run `callStatic.nominate()` fails. * @returns {Promise} The transaction response from the `nominate` method. */ declare const nominate: (contractOptions: ContractOptions, signer: Signer | Signer$1, params: NominateParams, options: TransactionOptions) => Promise; export { nominate, transferBeneficiary, transferHolder, transferOwners };