import type { Web3Provider } from '@ethersproject/providers'; declare type TDaiPermitMessage = { holder: string; spender: string; nonce: number; expiry: number | string; allowed?: boolean; }; declare type TPermitMessage = { owner: string; spender: string; value: number | string; nonce: number | string; deadline: number | string; }; declare type TPermitSingleMessage = { details: TPermitSingleDetails; spender: string; sigDeadline: number | string; }; declare type TPermitSingleDetails = { token: string; amount: number | string; expiration: number | string; nonce: number | string; }; declare type TPermitDomain = { name: string; version: string; chainId?: number; salt?: string; verifyingContract: string; }; declare type TPermit2Domain = { name: string; chainId: number; verifyingContract: string; }; declare type TRSVResponse = { r: string; s: string; v: number; }; declare type TUsePermitOptions = { provider: Web3Provider; token: string; spender: string; owner: string; chainId: number; deadline?: number; }; declare const PERMIT_TYPES: readonly ["ERC2612", "DAI"]; declare type TPermitTypes = typeof PERMIT_TYPES[number]; declare type TPermitToken = { address: string; chainId: number; name: string; version?: string; noncesFn?: string; permitType?: TPermitTypes; }; declare type TPermitTokens = { [key in TPermitTypes]: TPermitToken[]; }; export type { TDaiPermitMessage, TPermitToken, TPermitMessage, TPermitSingleMessage, TPermitSingleDetails, TPermitDomain, TPermit2Domain, TRSVResponse, TUsePermitOptions, TPermitTypes, TPermitTokens };