import { Address } from "@solana/kit";
import BN from "bn.js";
import * as types from "../types";
export interface ObligationLiquidityFields {
    /** Reserve liquidity is borrowed from */
    borrowReserve: Address;
    /** Borrow rate used for calculating interest (big scaled fraction) */
    cumulativeBorrowRateBsf: types.BigFractionBytesFields;
    padding: BN;
    /** Amount of liquidity borrowed plus interest (scaled fraction) */
    borrowedAmountSf: BN;
    /** Liquidity market value in quote currency (scaled fraction) */
    marketValueSf: BN;
    /** Risk adjusted liquidity market value in quote currency - DEBUG ONLY - use market_value instead */
    borrowFactorAdjustedMarketValueSf: BN;
    /** Amount of liquidity borrowed outside of an elevation group */
    borrowedAmountOutsideElevationGroups: BN;
    padding2: Array<BN>;
}
export interface ObligationLiquidityJSON {
    /** Reserve liquidity is borrowed from */
    borrowReserve: string;
    /** Borrow rate used for calculating interest (big scaled fraction) */
    cumulativeBorrowRateBsf: types.BigFractionBytesJSON;
    padding: string;
    /** Amount of liquidity borrowed plus interest (scaled fraction) */
    borrowedAmountSf: string;
    /** Liquidity market value in quote currency (scaled fraction) */
    marketValueSf: string;
    /** Risk adjusted liquidity market value in quote currency - DEBUG ONLY - use market_value instead */
    borrowFactorAdjustedMarketValueSf: string;
    /** Amount of liquidity borrowed outside of an elevation group */
    borrowedAmountOutsideElevationGroups: string;
    padding2: Array<string>;
}
/** Obligation liquidity state */
export declare class ObligationLiquidity {
    /** Reserve liquidity is borrowed from */
    readonly borrowReserve: Address;
    /** Borrow rate used for calculating interest (big scaled fraction) */
    readonly cumulativeBorrowRateBsf: types.BigFractionBytes;
    readonly padding: BN;
    /** Amount of liquidity borrowed plus interest (scaled fraction) */
    readonly borrowedAmountSf: BN;
    /** Liquidity market value in quote currency (scaled fraction) */
    readonly marketValueSf: BN;
    /** Risk adjusted liquidity market value in quote currency - DEBUG ONLY - use market_value instead */
    readonly borrowFactorAdjustedMarketValueSf: BN;
    /** Amount of liquidity borrowed outside of an elevation group */
    readonly borrowedAmountOutsideElevationGroups: BN;
    readonly padding2: Array<BN>;
    constructor(fields: ObligationLiquidityFields);
    static layout(property?: string): import("buffer-layout").Layout<unknown>;
    static fromDecoded(obj: any): types.ObligationLiquidity;
    static toEncodable(fields: ObligationLiquidityFields): {
        borrowReserve: Address;
        cumulativeBorrowRateBsf: {
            value: BN[];
            padding: BN[];
        };
        padding: BN;
        borrowedAmountSf: BN;
        marketValueSf: BN;
        borrowFactorAdjustedMarketValueSf: BN;
        borrowedAmountOutsideElevationGroups: BN;
        padding2: BN[];
    };
    toJSON(): ObligationLiquidityJSON;
    static fromJSON(obj: ObligationLiquidityJSON): ObligationLiquidity;
    toEncodable(): {
        borrowReserve: Address;
        cumulativeBorrowRateBsf: {
            value: BN[];
            padding: BN[];
        };
        padding: BN;
        borrowedAmountSf: BN;
        marketValueSf: BN;
        borrowFactorAdjustedMarketValueSf: BN;
        borrowedAmountOutsideElevationGroups: BN;
        padding2: BN[];
    };
}
//# sourceMappingURL=ObligationLiquidity.d.ts.map