import { Address } from "@solana/kit";
import BN from "bn.js";
import * as types from "../types";
export interface ReserveLiquidityFields {
    mintPubkey: Address;
    supplyVault: Address;
    feeVault: Address;
    totalAvailableAmount: BN;
    borrowedAmountSf: BN;
    marketPriceSf: BN;
    marketPriceLastUpdatedTs: BN;
    mintDecimals: BN;
    depositLimitCrossedTimestamp: BN;
    borrowLimitCrossedTimestamp: BN;
    cumulativeBorrowRateBsf: types.BigFractionBytesFields;
    accumulatedProtocolFeesSf: BN;
    accumulatedReferrerFeesSf: BN;
    pendingReferrerFeesSf: BN;
    absoluteReferralRateSf: BN;
    tokenProgram: Address;
    rewardsAmountAvailable: BN;
    padding2: Array<BN>;
    padding3: Array<BN>;
}
export interface ReserveLiquidityJSON {
    mintPubkey: string;
    supplyVault: string;
    feeVault: string;
    totalAvailableAmount: string;
    borrowedAmountSf: string;
    marketPriceSf: string;
    marketPriceLastUpdatedTs: string;
    mintDecimals: string;
    depositLimitCrossedTimestamp: string;
    borrowLimitCrossedTimestamp: string;
    cumulativeBorrowRateBsf: types.BigFractionBytesJSON;
    accumulatedProtocolFeesSf: string;
    accumulatedReferrerFeesSf: string;
    pendingReferrerFeesSf: string;
    absoluteReferralRateSf: string;
    tokenProgram: string;
    rewardsAmountAvailable: string;
    padding2: Array<string>;
    padding3: Array<string>;
}
export declare class ReserveLiquidity {
    readonly mintPubkey: Address;
    readonly supplyVault: Address;
    readonly feeVault: Address;
    readonly totalAvailableAmount: BN;
    readonly borrowedAmountSf: BN;
    readonly marketPriceSf: BN;
    readonly marketPriceLastUpdatedTs: BN;
    readonly mintDecimals: BN;
    readonly depositLimitCrossedTimestamp: BN;
    readonly borrowLimitCrossedTimestamp: BN;
    readonly cumulativeBorrowRateBsf: types.BigFractionBytes;
    readonly accumulatedProtocolFeesSf: BN;
    readonly accumulatedReferrerFeesSf: BN;
    readonly pendingReferrerFeesSf: BN;
    readonly absoluteReferralRateSf: BN;
    readonly tokenProgram: Address;
    readonly rewardsAmountAvailable: BN;
    readonly padding2: Array<BN>;
    readonly padding3: Array<BN>;
    constructor(fields: ReserveLiquidityFields);
    static layout(property?: string): import("buffer-layout").Layout<unknown>;
    static fromDecoded(obj: any): types.ReserveLiquidity;
    static toEncodable(fields: ReserveLiquidityFields): {
        mintPubkey: Address;
        supplyVault: Address;
        feeVault: Address;
        totalAvailableAmount: BN;
        borrowedAmountSf: BN;
        marketPriceSf: BN;
        marketPriceLastUpdatedTs: BN;
        mintDecimals: BN;
        depositLimitCrossedTimestamp: BN;
        borrowLimitCrossedTimestamp: BN;
        cumulativeBorrowRateBsf: {
            value: BN[];
            padding: BN[];
        };
        accumulatedProtocolFeesSf: BN;
        accumulatedReferrerFeesSf: BN;
        pendingReferrerFeesSf: BN;
        absoluteReferralRateSf: BN;
        tokenProgram: Address;
        rewardsAmountAvailable: BN;
        padding2: BN[];
        padding3: BN[];
    };
    toJSON(): ReserveLiquidityJSON;
    static fromJSON(obj: ReserveLiquidityJSON): ReserveLiquidity;
    toEncodable(): {
        mintPubkey: Address;
        supplyVault: Address;
        feeVault: Address;
        totalAvailableAmount: BN;
        borrowedAmountSf: BN;
        marketPriceSf: BN;
        marketPriceLastUpdatedTs: BN;
        mintDecimals: BN;
        depositLimitCrossedTimestamp: BN;
        borrowLimitCrossedTimestamp: BN;
        cumulativeBorrowRateBsf: {
            value: BN[];
            padding: BN[];
        };
        accumulatedProtocolFeesSf: BN;
        accumulatedReferrerFeesSf: BN;
        pendingReferrerFeesSf: BN;
        absoluteReferralRateSf: BN;
        tokenProgram: Address;
        rewardsAmountAvailable: BN;
        padding2: BN[];
        padding3: BN[];
    };
}
//# sourceMappingURL=ReserveLiquidity.d.ts.map