import BN from 'bn.js';
import * as types from '../types';
export interface TickStateFields {
    tick: number;
    /** Amount of net liquidity added (subtracted) when tick is crossed from left to right (right to left) */
    liquidityNet: BN;
    /** The total position liquidity that references this tick */
    liquidityGross: BN;
    /**
     * Fee growth per unit of liquidity on the _other_ side of this tick (relative to the current tick)
     * only has relative meaning, not absolute — the value depends on when the tick is initialized
     */
    feeGrowthOutside0X64: BN;
    feeGrowthOutside1X64: BN;
    rewardGrowthsOutsideX64: Array<BN>;
    padding: Array<number>;
}
export interface TickStateJSON {
    tick: number;
    /** Amount of net liquidity added (subtracted) when tick is crossed from left to right (right to left) */
    liquidityNet: string;
    /** The total position liquidity that references this tick */
    liquidityGross: string;
    /**
     * Fee growth per unit of liquidity on the _other_ side of this tick (relative to the current tick)
     * only has relative meaning, not absolute — the value depends on when the tick is initialized
     */
    feeGrowthOutside0X64: string;
    feeGrowthOutside1X64: string;
    rewardGrowthsOutsideX64: Array<string>;
    padding: Array<number>;
}
export declare class TickState {
    readonly tick: number;
    /** Amount of net liquidity added (subtracted) when tick is crossed from left to right (right to left) */
    readonly liquidityNet: BN;
    /** The total position liquidity that references this tick */
    readonly liquidityGross: BN;
    /**
     * Fee growth per unit of liquidity on the _other_ side of this tick (relative to the current tick)
     * only has relative meaning, not absolute — the value depends on when the tick is initialized
     */
    readonly feeGrowthOutside0X64: BN;
    readonly feeGrowthOutside1X64: BN;
    readonly rewardGrowthsOutsideX64: Array<BN>;
    readonly padding: Array<number>;
    constructor(fields: TickStateFields);
    static layout(property?: string): any;
    static fromDecoded(obj: any): types.TickState;
    static toEncodable(fields: TickStateFields): {
        tick: number;
        liquidityNet: BN;
        liquidityGross: BN;
        feeGrowthOutside0X64: BN;
        feeGrowthOutside1X64: BN;
        rewardGrowthsOutsideX64: BN[];
        padding: number[];
    };
    toJSON(): TickStateJSON;
    static fromJSON(obj: TickStateJSON): TickState;
    toEncodable(): {
        tick: number;
        liquidityNet: BN;
        liquidityGross: BN;
        feeGrowthOutside0X64: BN;
        feeGrowthOutside1X64: BN;
        rewardGrowthsOutsideX64: BN[];
        padding: number[];
    };
}
