import { Address } from "@solana/kit";
import BN from "bn.js";
import * as types from "../types";
export interface WhirlpoolRewardInfoFields {
    /** Reward token mint. */
    mint: Address;
    /** Reward vault token account. */
    vault: Address;
    /** Authority account that has permission to initialize the reward and set emissions. */
    authority: Address;
    /** Q64.64 number that indicates how many tokens per second are earned per unit of liquidity. */
    emissionsPerSecondX64: BN;
    /**
     * Q64.64 number that tracks the total tokens earned per unit of liquidity since the reward
     * emissions were turned on.
     */
    growthGlobalX64: BN;
}
export interface WhirlpoolRewardInfoJSON {
    /** Reward token mint. */
    mint: string;
    /** Reward vault token account. */
    vault: string;
    /** Authority account that has permission to initialize the reward and set emissions. */
    authority: string;
    /** Q64.64 number that indicates how many tokens per second are earned per unit of liquidity. */
    emissionsPerSecondX64: string;
    /**
     * Q64.64 number that tracks the total tokens earned per unit of liquidity since the reward
     * emissions were turned on.
     */
    growthGlobalX64: string;
}
export declare class WhirlpoolRewardInfo {
    /** Reward token mint. */
    readonly mint: Address;
    /** Reward vault token account. */
    readonly vault: Address;
    /** Authority account that has permission to initialize the reward and set emissions. */
    readonly authority: Address;
    /** Q64.64 number that indicates how many tokens per second are earned per unit of liquidity. */
    readonly emissionsPerSecondX64: BN;
    /**
     * Q64.64 number that tracks the total tokens earned per unit of liquidity since the reward
     * emissions were turned on.
     */
    readonly growthGlobalX64: BN;
    constructor(fields: WhirlpoolRewardInfoFields);
    static layout(property?: string): import("buffer-layout").Layout<unknown>;
    static fromDecoded(obj: any): types.WhirlpoolRewardInfo;
    static toEncodable(fields: WhirlpoolRewardInfoFields): {
        mint: Address;
        vault: Address;
        authority: Address;
        emissionsPerSecondX64: BN;
        growthGlobalX64: BN;
    };
    toJSON(): WhirlpoolRewardInfoJSON;
    static fromJSON(obj: WhirlpoolRewardInfoJSON): WhirlpoolRewardInfo;
    toEncodable(): {
        mint: Address;
        vault: Address;
        authority: Address;
        emissionsPerSecondX64: BN;
        growthGlobalX64: BN;
    };
}
//# sourceMappingURL=WhirlpoolRewardInfo.d.ts.map