/**
 * This code was AUTOGENERATED using the Codama library.
 * Please DO NOT EDIT THIS FILE, instead use visitors
 * to add features, then rerun Codama to update it.
 *
 * @see https://github.com/codama-idl/codama
 */
import { fetchEncodedAccount, fetchEncodedAccounts, type Account, type Address, type EncodedAccount, type FetchAccountConfig, type FetchAccountsConfig, type FixedSizeCodec, type FixedSizeDecoder, type FixedSizeEncoder, type MaybeAccount, type MaybeEncodedAccount, type ReadonlyUint8Array } from '@solana/kit';
import { type RewardInfo, type RewardInfoArgs } from '../types';
export declare const POOL_STATE_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
export declare function getPoolStateDiscriminatorBytes(): ReadonlyUint8Array;
export type PoolState = {
    discriminator: ReadonlyUint8Array;
    bump: ReadonlyUint8Array;
    ammConfig: Address;
    owner: Address;
    tokenMint0: Address;
    tokenMint1: Address;
    tokenVault0: Address;
    tokenVault1: Address;
    observationKey: Address;
    mintDecimals0: number;
    mintDecimals1: number;
    tickSpacing: number;
    liquidity: bigint;
    sqrtPriceX64: bigint;
    tickCurrent: number;
    observationIndex: number;
    observationUpdateDuration: number;
    feeGrowthGlobal0X64: bigint;
    feeGrowthGlobal1X64: bigint;
    protocolFeesToken0: bigint;
    protocolFeesToken1: bigint;
    swapInAmountToken0: bigint;
    swapOutAmountToken1: bigint;
    swapInAmountToken1: bigint;
    swapOutAmountToken0: bigint;
    status: number;
    padding: ReadonlyUint8Array;
    rewardInfos: Array<RewardInfo>;
    tickArrayBitmap: Array<bigint>;
    totalFeesToken0: bigint;
    totalFeesClaimedToken0: bigint;
    totalFeesToken1: bigint;
    totalFeesClaimedToken1: bigint;
    fundFeesToken0: bigint;
    fundFeesToken1: bigint;
    openTime: bigint;
    padding1: Array<bigint>;
    padding2: Array<bigint>;
};
export type PoolStateArgs = {
    bump: ReadonlyUint8Array;
    ammConfig: Address;
    owner: Address;
    tokenMint0: Address;
    tokenMint1: Address;
    tokenVault0: Address;
    tokenVault1: Address;
    observationKey: Address;
    mintDecimals0: number;
    mintDecimals1: number;
    tickSpacing: number;
    liquidity: number | bigint;
    sqrtPriceX64: number | bigint;
    tickCurrent: number;
    observationIndex: number;
    observationUpdateDuration: number;
    feeGrowthGlobal0X64: number | bigint;
    feeGrowthGlobal1X64: number | bigint;
    protocolFeesToken0: number | bigint;
    protocolFeesToken1: number | bigint;
    swapInAmountToken0: number | bigint;
    swapOutAmountToken1: number | bigint;
    swapInAmountToken1: number | bigint;
    swapOutAmountToken0: number | bigint;
    status: number;
    padding: ReadonlyUint8Array;
    rewardInfos: Array<RewardInfoArgs>;
    tickArrayBitmap: Array<number | bigint>;
    totalFeesToken0: number | bigint;
    totalFeesClaimedToken0: number | bigint;
    totalFeesToken1: number | bigint;
    totalFeesClaimedToken1: number | bigint;
    fundFeesToken0: number | bigint;
    fundFeesToken1: number | bigint;
    openTime: number | bigint;
    padding1: Array<number | bigint>;
    padding2: Array<number | bigint>;
};
/** Gets the encoder for {@link PoolStateArgs} account data. */
export declare function getPoolStateEncoder(): FixedSizeEncoder<PoolStateArgs>;
/** Gets the decoder for {@link PoolState} account data. */
export declare function getPoolStateDecoder(): FixedSizeDecoder<PoolState>;
/** Gets the codec for {@link PoolState} account data. */
export declare function getPoolStateCodec(): FixedSizeCodec<PoolStateArgs, PoolState>;
export declare function decodePoolState<TAddress extends string = string>(encodedAccount: EncodedAccount<TAddress>): Account<PoolState, TAddress>;
export declare function decodePoolState<TAddress extends string = string>(encodedAccount: MaybeEncodedAccount<TAddress>): MaybeAccount<PoolState, TAddress>;
export declare function fetchPoolState<TAddress extends string = string>(rpc: Parameters<typeof fetchEncodedAccount>[0], address: Address<TAddress>, config?: FetchAccountConfig): Promise<Account<PoolState, TAddress>>;
export declare function fetchMaybePoolState<TAddress extends string = string>(rpc: Parameters<typeof fetchEncodedAccount>[0], address: Address<TAddress>, config?: FetchAccountConfig): Promise<MaybeAccount<PoolState, TAddress>>;
export declare function fetchAllPoolState(rpc: Parameters<typeof fetchEncodedAccounts>[0], addresses: Array<Address>, config?: FetchAccountsConfig): Promise<Account<PoolState>[]>;
export declare function fetchAllMaybePoolState(rpc: Parameters<typeof fetchEncodedAccounts>[0], addresses: Array<Address>, config?: FetchAccountsConfig): Promise<MaybeAccount<PoolState>[]>;
export declare function getPoolStateSize(): number;
//# sourceMappingURL=poolState.d.ts.map