import { Eip2612PermitUtils } from '@1inch/permit-signed-approvals-utils'; import { latest } from '@cowprotocol/app-data'; import { JsonRpcProvider } from '@ethersproject/providers'; import { Token } from '@uniswap/sdk-core'; export type PermitType = 'dai-like' | 'eip-2612'; export type SupportedPermitInfo = { type: PermitType; version: string | undefined; }; type UnsupportedPermitInfo = false; export type PermitInfo = SupportedPermitInfo | UnsupportedPermitInfo; export type PermitHookParams = { inputToken: Token; spender: string; chainId: number; permitInfo: SupportedPermitInfo; provider: JsonRpcProvider; eip2162Utils: Eip2612PermitUtils; account?: string | undefined; nonce?: number | undefined; }; export type PermitHookData = latest.CoWHook; type FailedToIdentify = { error: string; }; export type GetTokenPermitIntoResult = SupportedPermitInfo | FailedToIdentify | UnsupportedPermitInfo; type BasePermitCallDataParams = { eip2162Utils: Eip2612PermitUtils; }; export type BuildEip2162PermitCallDataParams = BasePermitCallDataParams & { callDataParams: Parameters; }; export type BuildDaiLikePermitCallDataParams = BasePermitCallDataParams & { callDataParams: Parameters; }; export type GetTokenPermitInfoParams = { spender: string; tokenAddress: string; tokenName: string; chainId: number; provider: JsonRpcProvider; }; export {};