import { Contract } from '@ethersproject/contracts';
import { EnsPublicResolver, EnsRegistrar, Erc20, Erc721, Erc1155, RootChainManager, Weth } from 'abis/types';
import { Quoter, UniswapInterfaceMulticall } from 'types/v3';
export declare function useContract<T extends Contract = Contract>(addressOrAddressMap: string | {
    [chainId: number]: string;
} | undefined, ABI: any, withSignerIfPossible?: boolean): T | null;
export declare function useTokenContract(tokenAddress?: string, withSignerIfPossible?: boolean): Erc20 | null;
export declare function useWETHContract(withSignerIfPossible?: boolean): Weth | null;
export declare function useERC721Contract(nftAddress?: string): Erc721 | null;
export declare function useERC1155Contract(nftAddress?: string): Erc1155 | null;
export declare function useENSRegistrarContractWithChainId(chainId?: number, withSignerIfPossible?: boolean): EnsRegistrar | null;
export declare function useENSResolverContractWithChainId(chainId?: number, address?: string | undefined, withSignerIfPossible?: boolean): EnsPublicResolver | null;
export declare function useBytes32TokenContract(tokenAddress?: string, withSignerIfPossible?: boolean): Contract | null;
export declare function useEIP2612Contract(tokenAddress?: string): Contract | null;
export declare function useV2RouterContract(): Contract | null;
export declare function useInterfaceMulticallWithChainId(chainId?: number): UniswapInterfaceMulticall;
export declare function useV3QuoterWithChainId(chainId: number): Quoter | null;
export declare function useRootChainManagerProxyContract(): RootChainManager | null;
export declare function useContractWithChainId<T extends Contract = Contract>(chainId: number | undefined, addressOrAddressMap: string | {
    [chainId: number]: string;
} | undefined, ABI: any, withSignerIfPossible?: boolean): T | null;
