import { DeepReadonly } from 'ts-essentials'; import { Pool, PoolState } from '../types'; export declare const nativeAddonAvailable: boolean; export type V4RegistryQueryResult = { key: string; outputs: bigint[]; }; export type RustV4RegistryType = { setPool(key: string, init: ReturnType): void; removePool(key: string): void; queryMany(keys: string[], amounts: bigint[], zeroForOne: boolean, side: number): V4RegistryQueryResult[]; poolCount(): number; }; /** * Convert a V4 PoolState + Pool to the init format expected by * the Rust RustV4PoolRegistry addon. */ export declare function toV4RustInit(state: DeepReadonly, pool: DeepReadonly, networkId?: number): { sqrtPriceX96: bigint; tick: bigint; protocolFee: bigint; lpFee: bigint; liquidity: bigint; tickSpacing: bigint; feeGrowthGlobal0X128: bigint; feeGrowthGlobal1X128: bigint; bitmapRange: number; startTickBitmap: bigint; tickBitmap: { key: number; value: bigint; }[]; ticks: { key: number; liquidityGross: bigint; liquidityNet: bigint; }[]; }; export declare function createV4Registry(): RustV4RegistryType | null; export declare function v4RegistrySetPool(registry: RustV4RegistryType, key: string, state: DeepReadonly, pool: DeepReadonly, networkId?: number): void;