import type { Contract } from '@ethersproject/contracts'; import type { JsonRpcProvider } from '@ethersproject/providers'; export declare function getUniswapContract(library: JsonRpcProvider, account: string, chainId: number, addressOrAddressMap: string | { [chainId: number]: string; } | undefined, ABI: any, withSignerIfPossible?: boolean): () => T | null; export declare function getTokenContract(library: JsonRpcProvider, account: string, chainId: number, tokenAddress?: string, withSignerIfPossible?: boolean): () => ({ constant: boolean; inputs: { name: string; type: string; }[]; name: string; outputs: { name: string; type: string; }[]; payable: boolean; stateMutability: string; type: string; anonymous?: undefined; } | { payable: boolean; stateMutability: string; type: string; constant?: undefined; inputs?: undefined; name?: undefined; outputs?: undefined; anonymous?: undefined; } | { anonymous: boolean; inputs: { indexed: boolean; name: string; type: string; }[]; name: string; type: string; constant?: undefined; outputs?: undefined; payable?: undefined; stateMutability?: undefined; })[] | null; export declare function getEIP2612Contract(library: JsonRpcProvider, account: string, chainId: number, tokenAddress?: string): Contract | null; export declare function getV2RouterContract(library: JsonRpcProvider, account: string, chainId: number): Contract | null; export declare function getV3RouterContract(library: JsonRpcProvider, account: string, chainId: number): Contract | null;