///
///
///
import { BeetStruct } from '@metaplex-foundation/beet';
import { PublicKey } from '@solana/web3.js';
import BigNumber from 'bignumber.js';
interface Rate {
lastUpdated: number;
lastValue: BigNumber;
align0: number[];
lastEmaHourUpdated: number;
emaHourly: BigNumber;
align1: number[];
lastEmaDayUpdated: number;
ema3d: number;
ema7d: number;
ema14d: number;
ema30d: number;
ema90d: number;
ema180d: number;
ema365d: number;
}
export declare const vaultEarnBeet: BeetStruct>;
export interface VaultEarn {
discriminator: number[];
isInitialized: boolean;
version: number;
bump: number;
align0: number[];
protocol: PublicKey;
earnStats: PublicKey;
creator: PublicKey;
authority: PublicKey;
earnConfig: PublicKey;
vaultLiquidity: PublicKey;
priceOracle: PublicKey;
priceFeed: number[];
tokenProgram: PublicKey;
tokenMint: PublicKey;
tokenDecimal: number;
align1: number[];
lastUpdated: BigNumber;
unitSupply: string;
unitBorrowed: string;
unitLent: string;
unitLeverage: string;
index: BigNumber;
lastIndexUpdated: number;
apy: Rate;
padding1: Buffer[];
}
export declare const earnLenderBeet: BeetStruct>;
export interface EarnLender {
discriminator: number[];
is_initialized: boolean;
version: number;
bump: number;
align: number[];
owner: PublicKey;
protocol: PublicKey;
vault: PublicKey;
last_updated: BigNumber;
pending_deposit_amount: BigNumber;
pending_deposit_unit: BigNumber;
pending_deposit_index: BigNumber;
pending_withdraw_amount: BigNumber;
pending_withdraw_unit: BigNumber;
pending_withdraw_index: BigNumber;
unit: BigNumber;
index: BigNumber;
padding1: BigNumber[];
}
export declare const vaultLeverageBeet: BeetStruct>;
export interface VaultLeverage {
discriminator: number[];
isInitialized: boolean;
version: number;
bump: number;
align0: number[];
protocol: PublicKey;
leverageStats: PublicKey;
creator: PublicKey;
authority: PublicKey;
leverageConfig: PublicKey;
borrowVault: PublicKey;
tokenCollateralPriceOracle: PublicKey;
tokenCollateralPriceFeed: number[];
tokenCollateralTokenProgram: PublicKey;
tokenCollateralTokenMint: PublicKey;
tokenCollateralVaultLiquidity: PublicKey;
tokenCollateralTokenDecimal: number;
align1: number[];
nativeCollateralPriceOracle: PublicKey;
nativeCollateralPriceFeed: number[];
nativeCollateralTokenProgram: PublicKey;
nativeCollateralTokenMint: PublicKey;
nativeCollateralVaultLiquidity: PublicKey;
nativeCollateralTokenDecimal: number;
align2: number[];
lastUpdated: BigNumber;
borrowingUnitSupply: number;
borrowingIndex: number;
unitSupply: number;
index: number;
lastIndexUpdated: BigNumber;
borrowingApy: Rate;
apy: Rate;
padding1: BigNumber[];
}
export declare enum LeverageAction {
Idle = 0,
Open = 1,
AddCollateral = 2,
AddPosition = 3,
Close = 4,
Safe = 5,
Eject = 6,
Liquidate = 7,
Deleverage = 8,
TakeProfit = 9
}
export declare const leveragePositionStateBeet: BeetStruct>;
export interface LeveragePositionState {
action: LeverageAction;
align01: number[];
token_collateral_price_oracle: PublicKey;
token_collateral_price_feed: number[];
token_collateral_price: BigNumber;
token_collateral_price_exponent: BigNumber;
align0: number[];
native_collateral_price_oracle: PublicKey;
native_collateral_price_feed: number[];
native_collateral_price: BigNumber;
native_collateral_price_exponent: BigNumber;
protocol_fee: BigNumber;
leverage_fee: BigNumber;
deleverage_fee: BigNumber;
closing_fee: BigNumber;
spread_rate: BigNumber;
liquidation_fee: BigNumber;
liquidation_threshold: BigNumber;
liquidation_protocol_ratio: BigNumber;
slippage_rate: BigNumber;
emergency_eject_period: BigNumber;
saver_threshold: BigNumber;
saver_target_reduction: BigNumber;
fund_amount: BigNumber;
leverage_fee_amount: BigNumber;
borrow_amount: BigNumber;
borrowing_fee_amount: BigNumber;
borrowing_unit: BigNumber;
borrowing_index: BigNumber;
leveraged_amount: BigNumber;
min_native_collateral_output: BigNumber;
release_amount: BigNumber;
release_unit: BigNumber;
release_index: BigNumber;
release_rate: BigNumber;
align1: number[];
repay_amount: BigNumber;
repay_unit: BigNumber;
repay_index: BigNumber;
release_min_output: BigNumber;
release_current_leverage: BigNumber;
release_target_leverage: BigNumber;
utilization_rate: BigNumber;
align2: number[];
protocol_fee_factor: BigNumber;
protocol_fee_amount: BigNumber;
repay_borrow_amount: BigNumber;
liquidation_fee_amount: BigNumber;
health_factor: BigNumber;
borrow_fee: BigNumber;
padding1: BigNumber[];
}
export declare const leveragePositionBeet: BeetStruct>;
export interface LeveragePosition {
owner: PublicKey;
id: PublicKey;
tag_id: number[];
number: number;
align0: number[];
open_at: BigNumber;
last_updated: BigNumber;
emergency_eject: boolean;
safety_mode: boolean;
safety_level: number;
align1: number[];
token_collateral_amount: BigNumber;
token_to_native_ratio: BigNumber;
borrowing_unit: BigNumber;
avg_borrowing_index: BigNumber;
unit: BigNumber;
avg_index: BigNumber;
state: LeveragePositionState;
token_collateral_price_oracle: PublicKey;
token_collateral_price_feed: number[];
token_collateral_price: BigNumber;
token_collateral_price_exponent: number;
align2: number[];
native_collateral_price_oracle: PublicKey;
native_collateral_price_feed: number[];
native_collateral_price: BigNumber;
native_collateral_price_exponent: BigNumber;
profit_taker: boolean;
align3: number[];
profit_target_rate: BigNumber;
profit_taking_rate: BigNumber;
padding1: BigNumber[];
}
export declare const leverageObligationBeet: BeetStruct>;
export interface LeverageObligation {
discriminator: number[];
is_initialized: boolean;
version: number;
bump: number;
align: number[];
owner: PublicKey;
protocol: PublicKey;
vault: PublicKey;
borrow_vault: PublicKey;
last_updated: BigNumber;
positions: LeveragePosition[];
padding1: BigNumber[];
}
export {};