///
///
import { BeetStruct } from '@metaplex-foundation/beet';
import { PublicKey } from '@solana/web3.js';
import BigNumber from 'bignumber.js';
export declare enum TokenKind {
Collateral = 0,
Claim = 1,
AdapterCollateral = 2
}
export type AccountPosition = {
token: PublicKey;
padding: number[];
balance: BigNumber;
padding2: number[];
kind: TokenKind;
padding3: number[];
};
export declare const accountPositionStruct: BeetStruct>;
export type MarginAccount = {
accountDiscriminator: number[];
version: number;
bump_seed: number[];
user_seed: number[];
invocation: number;
reserved0: number[];
owner: PublicKey;
airspace: PublicKey;
liquidator: PublicKey;
padding: number[];
positions: AccountPosition[];
};
export declare const marginAccountStruct: BeetStruct>;
export type MarginPoolConfig = {
flags: BigNumber;
utilization_rate_1: number;
utilization_rate_2: number;
borrow_rate_0: number;
borrow_rate_1: number;
borrow_rate_2: number;
borrow_rate_3: number;
management_fee_rate: number;
deposit_limit: BigNumber;
borrow_limit: BigNumber;
reserved: BigNumber;
};
export declare const marginPoolConfigStruct: BeetStruct>;
export type MarginPool = {
accountDiscriminator: number[];
version: number;
pool_bump: number[];
airspace: PublicKey;
vault: PublicKey;
fee_destination: PublicKey;
deposit_note_mint: PublicKey;
loan_note_mint: PublicKey;
token_mint: PublicKey;
address: PublicKey;
config: MarginPoolConfig;
borrowed_tokens: number[];
uncollected_fees: number[];
deposit_tokens: BigNumber;
deposit_notes: BigNumber;
loan_notes: BigNumber;
accrued_until: BigNumber;
};
export declare const marginPoolStruct: BeetStruct>;