import { JsonRpcSigner } from '@ethersproject/providers'; import { ChainId, Trade } from '@ubeswap/sdk'; import { CallOverrides, Contract, ContractTransaction, PayableOverrides } from 'ethers'; declare type Head = Required extends [...infer H, any] ? H : never; declare type Last> = Required extends [...unknown[], infer L] ? L : never; declare type MethodArgs = Head>; export declare type DoTransactionFn = > & (PayableOverrides | CallOverrides)>(contract: C, methodName: M, args: { args: MethodArgs; overrides?: O; summary?: string; approval?: { tokenAddress: string; spender: string; }; claim?: { recipient: string; }; }) => Promise; export interface TradeExecutor { (args: { trade: T; signer: JsonRpcSigner; chainId: ChainId.MAINNET | ChainId.ALFAJORES; doTransaction: DoTransactionFn; }): Promise<{ hash: string; }>; } export interface CancelLimitOrderExecutor { (args: { orderHash: string; signer: JsonRpcSigner; chainId: ChainId.MAINNET | ChainId.ALFAJORES; doTransaction: DoTransactionFn; }): Promise<{ hash: string; }>; } /** * Allows performing transactions. * @returns */ export declare const useDoTransaction: () => DoTransactionFn; export {};