import { Address, GetAccountInfoApi, GetMultipleAccountsApi, Rpc } from "@solana/kit";
import BN from "bn.js";
export interface ProtocolPositionStateFields {
    /** Bump to identify PDA */
    bump: number;
    /** The ID of the pool with which this token is connected */
    poolId: Address;
    /** The lower bound tick of the position */
    tickLowerIndex: number;
    /** The upper bound tick of the position */
    tickUpperIndex: number;
    /** The amount of liquidity owned by this position */
    liquidity: BN;
    /** The token_0 fee growth per unit of liquidity as of the last update to liquidity or fees owed */
    feeGrowthInside0LastX64: BN;
    /** The token_1 fee growth per unit of liquidity as of the last update to liquidity or fees owed */
    feeGrowthInside1LastX64: BN;
    /** The fees owed to the position owner in token_0 */
    tokenFeesOwed0: BN;
    /** The fees owed to the position owner in token_1 */
    tokenFeesOwed1: BN;
    /** The reward growth per unit of liquidity as of the last update to liquidity */
    rewardGrowthInside: Array<BN>;
    padding: Array<BN>;
}
export interface ProtocolPositionStateJSON {
    /** Bump to identify PDA */
    bump: number;
    /** The ID of the pool with which this token is connected */
    poolId: string;
    /** The lower bound tick of the position */
    tickLowerIndex: number;
    /** The upper bound tick of the position */
    tickUpperIndex: number;
    /** The amount of liquidity owned by this position */
    liquidity: string;
    /** The token_0 fee growth per unit of liquidity as of the last update to liquidity or fees owed */
    feeGrowthInside0LastX64: string;
    /** The token_1 fee growth per unit of liquidity as of the last update to liquidity or fees owed */
    feeGrowthInside1LastX64: string;
    /** The fees owed to the position owner in token_0 */
    tokenFeesOwed0: string;
    /** The fees owed to the position owner in token_1 */
    tokenFeesOwed1: string;
    /** The reward growth per unit of liquidity as of the last update to liquidity */
    rewardGrowthInside: Array<string>;
    padding: Array<string>;
}
export declare class ProtocolPositionState {
    /** Bump to identify PDA */
    readonly bump: number;
    /** The ID of the pool with which this token is connected */
    readonly poolId: Address;
    /** The lower bound tick of the position */
    readonly tickLowerIndex: number;
    /** The upper bound tick of the position */
    readonly tickUpperIndex: number;
    /** The amount of liquidity owned by this position */
    readonly liquidity: BN;
    /** The token_0 fee growth per unit of liquidity as of the last update to liquidity or fees owed */
    readonly feeGrowthInside0LastX64: BN;
    /** The token_1 fee growth per unit of liquidity as of the last update to liquidity or fees owed */
    readonly feeGrowthInside1LastX64: BN;
    /** The fees owed to the position owner in token_0 */
    readonly tokenFeesOwed0: BN;
    /** The fees owed to the position owner in token_1 */
    readonly tokenFeesOwed1: BN;
    /** The reward growth per unit of liquidity as of the last update to liquidity */
    readonly rewardGrowthInside: Array<BN>;
    readonly padding: Array<BN>;
    static readonly discriminator: Buffer<ArrayBuffer>;
    static readonly layout: import("buffer-layout").Layout<ProtocolPositionState>;
    constructor(fields: ProtocolPositionStateFields);
    static fetch(rpc: Rpc<GetAccountInfoApi>, address: Address, programId?: Address): Promise<ProtocolPositionState | null>;
    static fetchMultiple(rpc: Rpc<GetMultipleAccountsApi>, addresses: Address[], programId?: Address): Promise<Array<ProtocolPositionState | null>>;
    static decode(data: Buffer): ProtocolPositionState;
    toJSON(): ProtocolPositionStateJSON;
    static fromJSON(obj: ProtocolPositionStateJSON): ProtocolPositionState;
}
//# sourceMappingURL=ProtocolPositionState.d.ts.map