import { Address } from "@solana/kit";
import BN from "bn.js";
import * as types from "../types";
export interface ObligationLiquidityFields {
    borrowReserve: Address;
    cumulativeBorrowRateBsf: types.BigFractionBytesFields;
    lastBorrowedAtTimestamp: BN;
    borrowedAmountSf: BN;
    marketValueSf: BN;
    borrowFactorAdjustedMarketValueSf: BN;
    borrowedAmountOutsideElevationGroups: BN;
    fixedTermBorrowRolloverConfig: types.FixedTermBorrowRolloverConfigFields;
    borrowedAmountAtExpiration: BN;
    padding2: Array<BN>;
}
export interface ObligationLiquidityJSON {
    borrowReserve: string;
    cumulativeBorrowRateBsf: types.BigFractionBytesJSON;
    lastBorrowedAtTimestamp: string;
    borrowedAmountSf: string;
    marketValueSf: string;
    borrowFactorAdjustedMarketValueSf: string;
    borrowedAmountOutsideElevationGroups: string;
    fixedTermBorrowRolloverConfig: types.FixedTermBorrowRolloverConfigJSON;
    borrowedAmountAtExpiration: string;
    padding2: Array<string>;
}
export declare class ObligationLiquidity {
    readonly borrowReserve: Address;
    readonly cumulativeBorrowRateBsf: types.BigFractionBytes;
    readonly lastBorrowedAtTimestamp: BN;
    readonly borrowedAmountSf: BN;
    readonly marketValueSf: BN;
    readonly borrowFactorAdjustedMarketValueSf: BN;
    readonly borrowedAmountOutsideElevationGroups: BN;
    readonly fixedTermBorrowRolloverConfig: types.FixedTermBorrowRolloverConfig;
    readonly borrowedAmountAtExpiration: 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[];
        };
        lastBorrowedAtTimestamp: BN;
        borrowedAmountSf: BN;
        marketValueSf: BN;
        borrowFactorAdjustedMarketValueSf: BN;
        borrowedAmountOutsideElevationGroups: BN;
        fixedTermBorrowRolloverConfig: {
            autoRolloverEnabled: number;
            openTermAllowed: number;
            migrationToFixedEnabled: number;
            alignmentPadding: number[];
            maxBorrowRateBps: number;
            minDebtTermSeconds: BN;
        };
        borrowedAmountAtExpiration: BN;
        padding2: BN[];
    };
    toJSON(): ObligationLiquidityJSON;
    static fromJSON(obj: ObligationLiquidityJSON): ObligationLiquidity;
    toEncodable(): {
        borrowReserve: Address;
        cumulativeBorrowRateBsf: {
            value: BN[];
            padding: BN[];
        };
        lastBorrowedAtTimestamp: BN;
        borrowedAmountSf: BN;
        marketValueSf: BN;
        borrowFactorAdjustedMarketValueSf: BN;
        borrowedAmountOutsideElevationGroups: BN;
        fixedTermBorrowRolloverConfig: {
            autoRolloverEnabled: number;
            openTermAllowed: number;
            migrationToFixedEnabled: number;
            alignmentPadding: number[];
            maxBorrowRateBps: number;
            minDebtTermSeconds: BN;
        };
        borrowedAmountAtExpiration: BN;
        padding2: BN[];
    };
}
//# sourceMappingURL=ObligationLiquidity.d.ts.map