import { Interface } from '@ethersproject/abi'; import { ChainId } from '@uniswap/sdk-core'; export declare const PV4BIN_PROTOCOL = "PV4BIN"; /** * PancakeSwap Infinity BinPoolManager (singleton) addresses. * Same address on BNB and Base. */ export declare const PV4BIN_POOL_MANAGER_ADDRESSES: { [chainId: number]: string; }; /** * PancakeSwap Infinity BinQuoter addresses. * Same address on BNB and Base. */ export declare const PV4BIN_QUOTER_ADDRESSES: { [chainId: number]: string; }; /** Chains where PV4BIN routing is enabled. */ export declare const PV4BIN_SUPPORTED: ChainId[]; /** * Extract hook permissions from a hook contract address. * Lower 16 bits of the address encode which callbacks are enabled. */ export declare function getBinHookPermissions(hookAddress: string): number; /** * Default pool params for static Bin pool discovery. * Each entry is [fee, binStep, hooks]. * * Common binStep values: * - 1 (0.01% per bin — tight, stable pairs) * - 10 (0.1% per bin) * - 20 (0.2% per bin) * - 25 (0.25% per bin) * - 100 (1% per bin — wide, volatile pairs) */ export declare const PV4BIN_DEFAULT_POOL_PARAMS: Array<[number, number, string]>; /** * Encode binStep and hook permissions into PCS Infinity Bin `parameters` bytes32. * * Layout (right-aligned): * - bits [0..15] : hook permissions (16 bits) * - bits [16..31] : binStep (16 bits) */ export declare function encodeBinPoolParameters(binStep: number, hookPermissions?: number): string; /** * Compute the keccak256 pool ID from the 6-field PCS Infinity PoolKey. * Same structure as CL — only the poolManager address differs. */ export declare function computePV4BINPoolId(currency0: string, currency1: string, hooks: string, poolManager: string, fee: number, parameters: string): string; /** * Minimal ABI for BinPoolManager on-chain verification. * getSlot0 returns (uint24 activeId, uint24 protocolFee, uint24 lpFee). * A pool is initialized when activeId != 0. */ export declare const BIN_POOL_MANAGER_IFACE: Interface; /** * Minimal ABI for PancakeSwap Infinity BinQuoter. * Same PoolKey and PathKey struct layout as CLQuoter. */ export declare const BIN_QUOTER_IFACE: Interface; export declare const PV4BIN_QUOTE_BATCH_SIZE = 200; export declare const PV4BIN_MAX_ROUTES = 80;