import { CHAIN_ID } from '../utils/supportedChains/index.js'; import { BigNumber, providers } from 'ethers'; import { BigNumberish, Provider } from 'ethersV6'; import '../utils/gasStation/index.js'; import '../utils/network/index.js'; interface GasPriceScale { maxPriorityFeePerGasScale: number; } interface GasOption extends GasPriceScale { dryRun: boolean; } type GasValue = BigNumber | BigNumberish | string | number; interface RejectTransferParams { remarks?: string; } interface ReturnToIssuerParams { remarks?: string; } interface AcceptReturnedParams { tokenId: string | number; remarks?: string; } interface RejectReturnedParams { tokenId: string | number; remarks?: string; } interface MintTokenParams { beneficiaryAddress: string; holderAddress: string; tokenId: string | number; remarks?: string; } interface OwnerOfTokenParams { tokenId: string | number; } interface TransactionOptions { chainId?: CHAIN_ID; titleEscrowVersion?: 'v4' | 'v5'; maxFeePerGas?: BigNumberish | string | number | BigNumber; maxPriorityFeePerGas?: BigNumberish | string | number | BigNumber; id?: string; } type ContractOptions = { titleEscrowAddress: string; tokenId?: string | number; tokenRegistryAddress?: string; } | { titleEscrowAddress?: undefined; tokenId: string | number; tokenRegistryAddress: string; }; type AcceptReturnedOptions = { tokenRegistryAddress: string; }; type RejectReturnedOptions = { tokenRegistryAddress: string; }; type MintTokenOptions = { tokenRegistryAddress: string; }; type OwnerOfTokenOptions = { tokenRegistryAddress: string; }; interface TransferHolderParams { holderAddress: string; remarks?: string; } interface TransferBeneficiaryParams { newBeneficiaryAddress: string; remarks?: string; } interface NominateParams { newBeneficiaryAddress: string; remarks?: string; } interface TransferOwnersParams { newHolderAddress: string; newBeneficiaryAddress: string; remarks?: string; } interface ProviderInfo { Provider: providers.Provider | Provider; ethersVersion: 'v5' | 'v6'; titleEscrowVersion: 'v4' | 'v5'; } interface NetworkOption { network: string; } type WalletOption = { encryptedWalletPath: string; }; type PrivateKeyOption = { key?: string; keyFile?: never; } | { key?: never; keyFile?: string; }; type NetworkAndWalletSignerOption = NetworkOption & (Partial | Partial); interface DeployContractAddress { TitleEscrowFactory?: string; TokenImplementation?: string; Deployer?: string; } export type { AcceptReturnedOptions, AcceptReturnedParams, ContractOptions, DeployContractAddress, GasOption, GasPriceScale, GasValue, MintTokenOptions, MintTokenParams, NetworkAndWalletSignerOption, NetworkOption, NominateParams, OwnerOfTokenOptions, OwnerOfTokenParams, PrivateKeyOption, ProviderInfo, RejectReturnedOptions, RejectReturnedParams, RejectTransferParams, ReturnToIssuerParams, TransactionOptions, TransferBeneficiaryParams, TransferHolderParams, TransferOwnersParams, WalletOption };