import { PublicKey, Connection } from "@solana/web3.js";
import BN from "bn.js";
export interface ReferrerTokenStateFields {
    /** Pubkey of the referrer/owner */
    referrer: PublicKey;
    /** Token mint for the account */
    mint: PublicKey;
    /** Amount that has been accumulated and not claimed yet -> available to claim (scaled fraction) */
    amountUnclaimedSf: BN;
    /** Amount that has been accumulated in total -> both already claimed and unclaimed (scaled fraction) */
    amountCumulativeSf: BN;
    /** Referrer token state bump, used for address validation */
    bump: BN;
    padding: Array<BN>;
}
export interface ReferrerTokenStateJSON {
    /** Pubkey of the referrer/owner */
    referrer: string;
    /** Token mint for the account */
    mint: string;
    /** Amount that has been accumulated and not claimed yet -> available to claim (scaled fraction) */
    amountUnclaimedSf: string;
    /** Amount that has been accumulated in total -> both already claimed and unclaimed (scaled fraction) */
    amountCumulativeSf: string;
    /** Referrer token state bump, used for address validation */
    bump: string;
    padding: Array<string>;
}
/** Referrer account -> each owner can have multiple accounts for specific reserves */
export declare class ReferrerTokenState {
    /** Pubkey of the referrer/owner */
    readonly referrer: PublicKey;
    /** Token mint for the account */
    readonly mint: PublicKey;
    /** Amount that has been accumulated and not claimed yet -> available to claim (scaled fraction) */
    readonly amountUnclaimedSf: BN;
    /** Amount that has been accumulated in total -> both already claimed and unclaimed (scaled fraction) */
    readonly amountCumulativeSf: BN;
    /** Referrer token state bump, used for address validation */
    readonly bump: BN;
    readonly padding: Array<BN>;
    static readonly discriminator: Buffer<ArrayBuffer>;
    static readonly layout: any;
    constructor(fields: ReferrerTokenStateFields);
    static fetch(c: Connection, address: PublicKey, programId?: PublicKey): Promise<ReferrerTokenState | null>;
    static fetchMultiple(c: Connection, addresses: PublicKey[], programId?: PublicKey): Promise<Array<ReferrerTokenState | null>>;
    static decode(data: Buffer): ReferrerTokenState;
    toJSON(): ReferrerTokenStateJSON;
    static fromJSON(obj: ReferrerTokenStateJSON): ReferrerTokenState;
}
//# sourceMappingURL=ReferrerTokenState.d.ts.map