import { InterfaceAbi } from 'ethers';
import { Idl } from '@coral-xyz/anchor';
export type ContractMetadata = {
    abi?: InterfaceAbi;
    address?: string;
};
export declare enum ContractType {
    HinkalContract = 0,
    HinkalHelperContract = 1,
    UniswapV3FactoryContract = 2,
    UniswapV3PoolContract = 3,
    UniswapV3QuoterContract = 4,
    ERC20Contract = 5,
    ERC721Contract = 6,
    ERC1155Contract = 7,
    WATokenContract = 8,
    OneInchExternalActionContract = 9,
    MerkleTreeContract = 10,
    ContractWithNonces = 11,
    PermitterContract = 12,
    UniswapV2PoolContract = 13,
    HinkalWrapper = 14,
    HinkalWrapper2 = 15,
    DepositOnChainUtxos = 16
}
export interface ContractData {
    hinkalAddress: string;
    hinkalABI?: InterfaceAbi;
    hinkalIdl?: Idl;
    hinkalHelperAddress?: string;
    hinkalHelperABI?: InterfaceAbi;
    permitterAddress?: string;
    permitterABI?: InterfaceAbi;
    uniswapExternalActionAddress?: string;
    odosExternalActionInstanceAddress?: string;
    oneInchExternalActionInstanceAddress?: string;
    waTokenABI?: InterfaceAbi;
    hinkalWrapperAddress?: string;
    hinkalWrapper2Address?: string;
    hinkalWrapperABI?: InterfaceAbi;
    HinkalWrapper2ABI?: InterfaceAbi;
    emporiumAddress?: string;
    hinkalWalletAddress?: string;
    originalDeployer?: string;
    depositOnChainUtxosExternalActionAddress?: string;
    depositOnChainUtxosExternalActionABI?: InterfaceAbi;
}
export interface EthereumNetwork {
    name: string;
    chainId: number;
    rpcUrl: string;
    maxPageSize?: number;
    fetchRpcUrl?: string;
    wsRpcUrl?: string;
    contractData: ContractData;
    supported?: boolean;
    quoterV2Address?: string;
    uniswapV3FactoryAddress?: string;
    pollingInterval?: number;
    gasStationUrl?: string;
    priority?: number;
}
