import { Address, FixedSizeCodec, FixedSizeDecoder, FixedSizeEncoder, ReadonlyUint8Array } from '@solana/kit';
import { WhirlpoolRewardInfo, WhirlpoolRewardInfoArgs } from '.';
export type Whirlpool = {
    discriminator: ReadonlyUint8Array;
    whirlpoolConfig: Address;
    whirlpoolBump: number;
    tickSpacing: number;
    feeTierIndex: number;
    feeRate: number;
    protocolFeeRate: number;
    liquidity: bigint;
    sqrtPrice: bigint;
    tickCurrentIndex: number;
    protocolFeeOwedA: bigint;
    protocolFeeOwedB: bigint;
    tokenMintA: Address;
    tokenVaultA: Address;
    feeGrowthGlobalA: bigint;
    tokenMintB: Address;
    tokenVaultB: Address;
    feeGrowthGlobalB: bigint;
    rewardLastUpdatedTimestamp: bigint;
    rewardInfos: Array<WhirlpoolRewardInfo>;
};
export type WhirlpoolArgs = {
    discriminator: ReadonlyUint8Array;
    whirlpoolConfig: Address;
    whirlpoolBump: number;
    tickSpacing: number;
    feeTierIndex: number;
    feeRate: number;
    protocolFeeRate: number;
    liquidity: number | bigint;
    sqrtPrice: number | bigint;
    tickCurrentIndex: number;
    protocolFeeOwedA: number | bigint;
    protocolFeeOwedB: number | bigint;
    tokenMintA: Address;
    tokenVaultA: Address;
    feeGrowthGlobalA: number | bigint;
    tokenMintB: Address;
    tokenVaultB: Address;
    feeGrowthGlobalB: number | bigint;
    rewardLastUpdatedTimestamp: number | bigint;
    rewardInfos: Array<WhirlpoolRewardInfoArgs>;
};
export declare function getWhirlpoolEncoder(): FixedSizeEncoder<WhirlpoolArgs>;
export declare function getWhirlpoolDecoder(): FixedSizeDecoder<Whirlpool>;
export declare function getWhirlpoolCodec(): FixedSizeCodec<WhirlpoolArgs, Whirlpool>;
