///
import { PublicKey, Connection } from '@solana/web3.js';
import BN from 'bn.js';
import * as types from '../types';
export interface WhirlpoolFields {
whirlpoolsConfig: PublicKey;
whirlpoolBump: Array;
tickSpacing: number;
tickSpacingSeed: Array;
feeRate: number;
protocolFeeRate: number;
liquidity: BN;
sqrtPrice: BN;
tickCurrentIndex: number;
protocolFeeOwedA: BN;
protocolFeeOwedB: BN;
tokenMintA: PublicKey;
tokenVaultA: PublicKey;
feeGrowthGlobalA: BN;
tokenMintB: PublicKey;
tokenVaultB: PublicKey;
feeGrowthGlobalB: BN;
rewardLastUpdatedTimestamp: BN;
rewardInfos: Array;
}
export interface WhirlpoolJSON {
whirlpoolsConfig: string;
whirlpoolBump: Array;
tickSpacing: number;
tickSpacingSeed: Array;
feeRate: number;
protocolFeeRate: number;
liquidity: string;
sqrtPrice: string;
tickCurrentIndex: number;
protocolFeeOwedA: string;
protocolFeeOwedB: string;
tokenMintA: string;
tokenVaultA: string;
feeGrowthGlobalA: string;
tokenMintB: string;
tokenVaultB: string;
feeGrowthGlobalB: string;
rewardLastUpdatedTimestamp: string;
rewardInfos: Array;
}
export declare class Whirlpool {
readonly whirlpoolsConfig: PublicKey;
readonly whirlpoolBump: Array;
readonly tickSpacing: number;
readonly tickSpacingSeed: Array;
readonly feeRate: number;
readonly protocolFeeRate: number;
readonly liquidity: BN;
readonly sqrtPrice: BN;
readonly tickCurrentIndex: number;
readonly protocolFeeOwedA: BN;
readonly protocolFeeOwedB: BN;
readonly tokenMintA: PublicKey;
readonly tokenVaultA: PublicKey;
readonly feeGrowthGlobalA: BN;
readonly tokenMintB: PublicKey;
readonly tokenVaultB: PublicKey;
readonly feeGrowthGlobalB: BN;
readonly rewardLastUpdatedTimestamp: BN;
readonly rewardInfos: Array;
static readonly discriminator: Buffer;
static readonly layout: any;
constructor(fields: WhirlpoolFields);
static fetch(c: Connection, address: PublicKey): Promise;
static fetchMultiple(c: Connection, addresses: PublicKey[]): Promise>;
static decode(data: Buffer): Whirlpool;
toJSON(): WhirlpoolJSON;
static fromJSON(obj: WhirlpoolJSON): Whirlpool;
}