import { ChainId, NonEVMChainId, UnifiedChainId } from '../chainId'; export type ChainFeatureConfig = { swap?: boolean; liquidity?: boolean; pools?: boolean; farms?: boolean; prediction?: boolean; aggregator?: boolean; infinity?: boolean; v2?: boolean; v3?: boolean; }; export type ChainContractConfig = { multicall?: `0x${string}`; multicall3?: `0x${string}`; permit2?: `0x${string}`; v2Factory?: `0x${string}`; v2Router?: `0x${string}`; v3Factory?: `0x${string}`; v3Deployer?: `0x${string}`; v3NftPositionManager?: `0x${string}`; v3Migrator?: `0x${string}`; v3Quoter?: `0x${string}`; v3TickLens?: `0x${string}`; mixedRouteQuoter?: `0x${string}`; smartRouter?: `0x${string}`; universalRouter?: `0x${string}`; masterChefV3?: `0x${string}`; }; export type ChainHashConfig = { v2InitCodeHash?: `0x${string}`; v3PoolInitCodeHash?: `0x${string}`; }; export type ChainRoutingConfig = { poolDiscovery?: 'edgeWithOnChainFallback' | 'onChainOnly'; skipCompactTickFallback?: boolean; }; export type BaseChainConfig = { id: UnifiedChainId; name: string; fullName: string; kebabCaseName: string; mainnetKebabCaseName?: string; defiLlamaName?: string; isEVM: boolean; testnet?: boolean; averageBlockTime?: number; }; export type EvmChainConfig = BaseChainConfig & { id: ChainId; isEVM: true; nativeCurrency?: { name: string; symbol: string; decimals: number; }; blockExplorerUrl?: string; isL2?: boolean; features?: ChainFeatureConfig; tokens?: { wrappedNative?: `0x${string}`; }; contracts?: ChainContractConfig; hashes?: ChainHashConfig; routing?: ChainRoutingConfig; }; export type NonEvmChainConfig = BaseChainConfig & { id: NonEVMChainId; isEVM: false; }; export type ChainConfig = EvmChainConfig; export type UnifiedChainConfig = EvmChainConfig | NonEvmChainConfig; //# sourceMappingURL=types.d.ts.map