import { Address, GetAccountInfoApi, GetMultipleAccountsApi, Rpc } from "@solana/kit";
import BN from "bn.js";
import * as types from "../types";
export interface LendingMarketFields {
    version: BN;
    bumpSeed: BN;
    lendingMarketOwner: Address;
    lendingMarketOwnerCached: Address;
    quoteCurrency: Array<number>;
    referralFeeBps: number;
    emergencyMode: number;
    autodeleverageEnabled: number;
    borrowDisabled: number;
    priceRefreshTriggerToMaxAgePct: number;
    liquidationMaxDebtCloseFactorPct: number;
    insolvencyRiskUnhealthyLtvPct: number;
    minFullLiquidationValueThreshold: BN;
    maxLiquidatableDebtMarketValueAtOnce: BN;
    reserved0: Array<number>;
    globalAllowedBorrowValue: BN;
    emergencyCouncil: Address;
    reserved1: Array<number>;
    elevationGroups: Array<types.ElevationGroupFields>;
    elevationGroupPadding: Array<BN>;
    minNetValueInObligationSf: BN;
    minValueSkipLiquidationLtvChecks: BN;
    name: Array<number>;
    minValueSkipLiquidationBfChecks: BN;
    individualAutodeleverageMarginCallPeriodSecs: BN;
    minInitialDepositAmount: BN;
    obligationOrderExecutionEnabled: number;
    immutable: number;
    obligationOrderCreationEnabled: number;
    priceTriggeredLiquidationDisabled: number;
    matureReserveDebtLiquidationEnabled: number;
    obligationBorrowDebtTermLiquidationEnabled: number;
    borrowOrderCreationEnabled: number;
    borrowOrderExecutionEnabled: number;
    proposerAuthority: Address;
    minBorrowOrderFillValue: BN;
    withdrawTicketIssuanceEnabled: number;
    withdrawTicketRedemptionEnabled: number;
    obligationBorrowRolloverConfigurationEnabled: number;
    obligationBorrowMigrationToFixedExecutionEnabled: number;
    withdrawTicketCancellationEnabled: number;
    padding2: Array<number>;
    reserveRewardsMaxAprBps: number;
    minWithdrawQueuedLiquidityValue: BN;
    fixedTermRolloverWindowDurationSeconds: BN;
    openTermRolloverWindowDurationSeconds: BN;
    minPartialRolloverValue: BN;
    termBasedFullLiquidationDurationSecs: BN;
    permissioningAuthority: Address;
    permissionedOps: BN;
    padding1: Array<BN>;
}
export interface LendingMarketJSON {
    version: string;
    bumpSeed: string;
    lendingMarketOwner: string;
    lendingMarketOwnerCached: string;
    quoteCurrency: Array<number>;
    referralFeeBps: number;
    emergencyMode: number;
    autodeleverageEnabled: number;
    borrowDisabled: number;
    priceRefreshTriggerToMaxAgePct: number;
    liquidationMaxDebtCloseFactorPct: number;
    insolvencyRiskUnhealthyLtvPct: number;
    minFullLiquidationValueThreshold: string;
    maxLiquidatableDebtMarketValueAtOnce: string;
    reserved0: Array<number>;
    globalAllowedBorrowValue: string;
    emergencyCouncil: string;
    reserved1: Array<number>;
    elevationGroups: Array<types.ElevationGroupJSON>;
    elevationGroupPadding: Array<string>;
    minNetValueInObligationSf: string;
    minValueSkipLiquidationLtvChecks: string;
    name: Array<number>;
    minValueSkipLiquidationBfChecks: string;
    individualAutodeleverageMarginCallPeriodSecs: string;
    minInitialDepositAmount: string;
    obligationOrderExecutionEnabled: number;
    immutable: number;
    obligationOrderCreationEnabled: number;
    priceTriggeredLiquidationDisabled: number;
    matureReserveDebtLiquidationEnabled: number;
    obligationBorrowDebtTermLiquidationEnabled: number;
    borrowOrderCreationEnabled: number;
    borrowOrderExecutionEnabled: number;
    proposerAuthority: string;
    minBorrowOrderFillValue: string;
    withdrawTicketIssuanceEnabled: number;
    withdrawTicketRedemptionEnabled: number;
    obligationBorrowRolloverConfigurationEnabled: number;
    obligationBorrowMigrationToFixedExecutionEnabled: number;
    withdrawTicketCancellationEnabled: number;
    padding2: Array<number>;
    reserveRewardsMaxAprBps: number;
    minWithdrawQueuedLiquidityValue: string;
    fixedTermRolloverWindowDurationSeconds: string;
    openTermRolloverWindowDurationSeconds: string;
    minPartialRolloverValue: string;
    termBasedFullLiquidationDurationSecs: string;
    permissioningAuthority: string;
    permissionedOps: string;
    padding1: Array<string>;
}
export declare class LendingMarket {
    readonly version: BN;
    readonly bumpSeed: BN;
    readonly lendingMarketOwner: Address;
    readonly lendingMarketOwnerCached: Address;
    readonly quoteCurrency: Array<number>;
    readonly referralFeeBps: number;
    readonly emergencyMode: number;
    readonly autodeleverageEnabled: number;
    readonly borrowDisabled: number;
    readonly priceRefreshTriggerToMaxAgePct: number;
    readonly liquidationMaxDebtCloseFactorPct: number;
    readonly insolvencyRiskUnhealthyLtvPct: number;
    readonly minFullLiquidationValueThreshold: BN;
    readonly maxLiquidatableDebtMarketValueAtOnce: BN;
    readonly reserved0: Array<number>;
    readonly globalAllowedBorrowValue: BN;
    readonly emergencyCouncil: Address;
    readonly reserved1: Array<number>;
    readonly elevationGroups: Array<types.ElevationGroup>;
    readonly elevationGroupPadding: Array<BN>;
    readonly minNetValueInObligationSf: BN;
    readonly minValueSkipLiquidationLtvChecks: BN;
    readonly name: Array<number>;
    readonly minValueSkipLiquidationBfChecks: BN;
    readonly individualAutodeleverageMarginCallPeriodSecs: BN;
    readonly minInitialDepositAmount: BN;
    readonly obligationOrderExecutionEnabled: number;
    readonly immutable: number;
    readonly obligationOrderCreationEnabled: number;
    readonly priceTriggeredLiquidationDisabled: number;
    readonly matureReserveDebtLiquidationEnabled: number;
    readonly obligationBorrowDebtTermLiquidationEnabled: number;
    readonly borrowOrderCreationEnabled: number;
    readonly borrowOrderExecutionEnabled: number;
    readonly proposerAuthority: Address;
    readonly minBorrowOrderFillValue: BN;
    readonly withdrawTicketIssuanceEnabled: number;
    readonly withdrawTicketRedemptionEnabled: number;
    readonly obligationBorrowRolloverConfigurationEnabled: number;
    readonly obligationBorrowMigrationToFixedExecutionEnabled: number;
    readonly withdrawTicketCancellationEnabled: number;
    readonly padding2: Array<number>;
    readonly reserveRewardsMaxAprBps: number;
    readonly minWithdrawQueuedLiquidityValue: BN;
    readonly fixedTermRolloverWindowDurationSeconds: BN;
    readonly openTermRolloverWindowDurationSeconds: BN;
    readonly minPartialRolloverValue: BN;
    readonly termBasedFullLiquidationDurationSecs: BN;
    readonly permissioningAuthority: Address;
    readonly permissionedOps: BN;
    readonly padding1: Array<BN>;
    static readonly discriminator: Buffer<ArrayBuffer>;
    static readonly layout: import("buffer-layout").Layout<LendingMarket>;
    constructor(fields: LendingMarketFields);
    static fetch(rpc: Rpc<GetAccountInfoApi>, address: Address, programId?: Address): Promise<LendingMarket | null>;
    static fetchMultiple(rpc: Rpc<GetMultipleAccountsApi>, addresses: Address[], programId?: Address): Promise<Array<LendingMarket | null>>;
    static decode(data: Buffer): LendingMarket;
    toJSON(): LendingMarketJSON;
    static fromJSON(obj: LendingMarketJSON): LendingMarket;
}
//# sourceMappingURL=LendingMarket.d.ts.map