///
///
import { BeetStruct, bignum } from '@metaplex-foundation/beet';
import { PublicKey } from '@solana/web3.js';
import BigNumber from 'bignumber.js';
import { WrappedI80F48 } from './common';
export declare enum OracleSetup {
None = 0,
PythEma = 1,
SwitchboardV2 = 2
}
export declare enum BankOperationalState {
Paused = 0,
Operational = 1,
ReduceOnly = 2
}
export declare enum RiskTier {
Collateral = 0,
Isolated = 1
}
export type InterestRateConfig = {
optimalUtilizationRate: WrappedI80F48;
plateauInterestRate: WrappedI80F48;
maxInterestRate: WrappedI80F48;
insuranceFeeFixedApr: WrappedI80F48;
insuranceIrFee: WrappedI80F48;
protocolFixedFeeApr: WrappedI80F48;
protocolIrFee: WrappedI80F48;
padding: bignum[];
};
export declare const interestRateConfigStruct: BeetStruct>;
export type BankConfig = {
assetWeightInit: WrappedI80F48;
assetWeightMaint: WrappedI80F48;
liabilityWeightInit: WrappedI80F48;
liabilityWeightMaint: WrappedI80F48;
depositLimit: BigNumber;
interestRateConfig: InterestRateConfig;
operationalState: BankOperationalState;
oracleSetup: OracleSetup;
oracleKeys_1: PublicKey;
oracleKeys_2: PublicKey;
oracleKeys_3: PublicKey;
oracleKeys_4: PublicKey;
oracleKeys_5: PublicKey;
auto_padding_0: number[];
borrowLimit: BigNumber;
riskTier: RiskTier;
assetTag: number;
auto_padding_1: number[];
totalAssetValueInitLimit: BigNumber;
padding: BigNumber[];
};
export declare const bankConfigStruct: BeetStruct>;
export type Bank = {
discriminator: number[];
mint: PublicKey;
mintDecimals: number;
group: PublicKey;
auto_padding_0: number[];
assetShareValue: WrappedI80F48;
liabilityShareValue: WrappedI80F48;
liquidityVault: PublicKey;
liquidityVaultBump: number;
liquidityVaultAuthorityBump: number;
insuranceVault: PublicKey;
insuranceVaultBump: number;
insuranceVaultAuthorityBump: number;
auto_padding_1: PublicKey;
collectedInsuranceFeesOutstanding: WrappedI80F48;
feeVault: PublicKey;
feeVaultBump: number;
feeVaultAuthorityBump: number;
auto_padding_2: number[];
collectedGroupFeesOutstanding: WrappedI80F48;
totalLiabilityShares: WrappedI80F48;
totalAssetShares: WrappedI80F48;
lastUpdate: BigNumber;
config: BankConfig;
emissionsFlags: number;
emissionsRate: number;
emissionsMint: PublicKey;
emissionsRemaining: WrappedI80F48;
padding0: BigNumber[];
padding1: BigNumber[];
};
export declare const bankStruct: BeetStruct>;