/// /// /// import { BeetStruct, COption, FixableBeetStruct } from '@metaplex-foundation/beet'; import BigNumber from 'bignumber.js'; import { PublicKey } from '@solana/web3.js'; export type LimitOrder = { buffer: Buffer; maker: PublicKey; inputMint: PublicKey; outputMint: PublicKey; waiting: boolean; oriMakingAmount: BigNumber; oriTakingAmount: BigNumber; makingAmount: BigNumber; takingAmount: BigNumber; makerInputAccount: PublicKey; makerOutputAccount: PublicKey; reserve: PublicKey; uid: BigNumber; expiredAt: BigNumber; base: PublicKey; referral: PublicKey; }; export declare const limitOrderStruct: BeetStruct>; export type LimitOrderV2 = { buffer: Buffer; maker: PublicKey; inputMint: PublicKey; outputMint: PublicKey; inputTokenProgram: PublicKey; outputTokenProgram: PublicKey; inputMintReserve: PublicKey; uniqueId: boolean; oriMakingAmount: BigNumber; oriTakingAmount: BigNumber; makingAmount: BigNumber; takingAmount: BigNumber; borrowMakingAmount: BigNumber; expiredAt: COption; feeBps: number; feeAccount: PublicKey; createdAt: BigNumber; updatedAt: BigNumber; bump: number; slippage_bps: number; sl_taking_amount: BigNumber; }; export declare const limitOrderV2Struct: FixableBeetStruct>; export type DCA = { buffer: Buffer; user: PublicKey; inputMint: PublicKey; outputMint: PublicKey; idx: BigNumber; nextCycleAt: BigNumber; inDeposited: BigNumber; inWithdrawn: BigNumber; outWithdrawn: BigNumber; inUsed: BigNumber; outReceived: BigNumber; inAmountPerCycle: BigNumber; cycleFrequency: BigNumber; nextCycleAmountLeft: BigNumber; inAccount: PublicKey; outAccount: PublicKey; minOutAmount: BigNumber; maxOutAmount: BigNumber; keeperInBalanceBeforeBorrow: BigNumber; dcaOutBalanceBeforeSwap: BigNumber; createdAt: BigNumber; bump: number; }; export declare const dcaStruct: BeetStruct>; export type ValueAverage = { buffer: Buffer; isStale: boolean; idx: BigNumber; bump: number; user: PublicKey; inputMint: PublicKey; outputMint: PublicKey; incrementUsdcValue: BigNumber; orderInterval: BigNumber; inputVault: PublicKey; outputVault: PublicKey; autoWithdraw: boolean; feeDataAccount: PublicKey; referralFeeAccount: PublicKey; createdAt: BigNumber; inDeposited: BigNumber; inLeft: BigNumber; inUsed: BigNumber; inWithdrawn: BigNumber; outReceived: BigNumber; outWithdrawn: BigNumber; supposedUsdcValue: BigNumber; nextOrderAt: BigNumber; outBalanceBeforeSwap: BigNumber; }; export declare const valueAverageStruct: BeetStruct>; export type VestingEscrow = { buffer: Buffer; recipient: PublicKey; tokenMint: PublicKey; creator: PublicKey; base: PublicKey; escrowBump: number; updateRecipientMode: number; cancelMode: number; tokenProgramFlag: number; padding0: number[]; cliffTime: BigNumber; frequency: BigNumber; cliffUnlockAmount: BigNumber; amountPerPeriod: BigNumber; numberOfPeriod: BigNumber; totalClaimedAmount: BigNumber; vestingStartTime: BigNumber; cancelledAt: BigNumber; padding1: BigNumber; padding: BigNumber[]; }; export declare const vestingEscrowStruct: BeetStruct>; export declare enum RequestChange { None = 0, Increase = 1, Decrease = 2 } export declare enum RequestType { Market = 0, Trigger = 1 } export type PositionRequest = { buffer: Buffer; owner: PublicKey; pool: PublicKey; custody: PublicKey; position: PublicKey; mint: PublicKey; openTime: BigNumber; updateTime: BigNumber; sizeUsdDelta: BigNumber; collateralDelta: BigNumber; requestChange: RequestChange; requestType: RequestType; side: Side; priceSlippage: COption; jupiterMinimumOut: COption; preSwapAmount: COption; triggerPrice: COption; triggerAboveThreshold: COption; entirePosition: COption; executed: boolean; counter: BigNumber; bump: number; }; export declare const positionRequestStruct: FixableBeetStruct>; export type Limit = { maxAumUsd: BigNumber; maxIndividualLpToken: BigNumber; maxPositionUsd: BigNumber; }; export declare const limitStruct: BeetStruct>; export type PoolApr = { lastUpdated: BigNumber; feeAprBps: BigNumber; realizedFeeUsd: BigNumber; }; export declare const poolAprStruct: BeetStruct>; export type Fees = { increasePositionBps: BigNumber; decreasePositionBps: BigNumber; addRemoveLiquidityBps: BigNumber; swapBps: BigNumber; taxBps: BigNumber; stableSwapBps: BigNumber; stableSwapTaxBps: BigNumber; liquidationRewardBps: BigNumber; protocolShareBps: BigNumber; }; export declare const feesStruct: BeetStruct>; export type PerpetualPool = { buffer: Buffer; name: number; custodies: PublicKey[]; aumUsd: BigNumber; limit: Limit; fees: Fees; poolApr: PoolApr; maxRequestExecutionSec: BigNumber; bump: number; lpTokenBump: number; inceptionTime: BigNumber; }; export declare const perpetualPoolStruct: FixableBeetStruct>; export declare enum OracleType { None = 0, Test = 1, Pyth = 2 } export type OracleParams = { oracleAccount: PublicKey; oracleType: OracleType; maxPriceError: BigNumber; maxPriceAgeSec: BigNumber; }; export declare const oracleParamsStruct: BeetStruct>; export type PricingParams = { tradeSpreadLong: BigNumber; tradeSpreadShort: BigNumber; swapSpread: BigNumber; maxLeverage: BigNumber; maxGlobalLongSizes: BigNumber; maxGlobalShortSizes: BigNumber; }; export declare const pricingParamsStruct: BeetStruct>; export type Permissions = { allowSwap: boolean; allowAddLiquidity: boolean; allowRemoveLiquidity: boolean; allowIncreasePosition: boolean; allowDecreasePosition: boolean; allowCollateralWithdrawal: boolean; allowLiquidatePosition: boolean; }; export declare const permissionsStruct: BeetStruct>; export type Assets = { feesReserves: BigNumber; owned: BigNumber; locked: BigNumber; guaranteedUsd: BigNumber; globalShortSizes: BigNumber; globalShortAveragePrices: BigNumber; }; export declare const assetsStruct: BeetStruct>; export type FundingRateState = { cumulativeInterestRate: BigNumber; lastUpdate: BigNumber; hourlyFundingBps: BigNumber; }; export declare const fundingRateStateStruct: BeetStruct>; export type JumpRateState = { minRateBps: BigNumber; maxRateBps: BigNumber; targetRateBps: BigNumber; targetUtilizationRate: BigNumber; }; export declare const jumpRateStateStruct: BeetStruct>; export type Custody = { buffer: Buffer; pool: PublicKey; mint: PublicKey; tokenAccount: PublicKey; decimals: number; isStable: boolean; oracle: OracleParams; pricing: PricingParams; permissions: Permissions; targetRatioBps: BigNumber; assets: Assets; fundingRateState: FundingRateState; bump: number; tokenAccountBump: number; increasePositionBps: BigNumber; decreasePositionBps: BigNumber; maxPositionSizeUsd: BigNumber; dovesOracle: PublicKey; jumpRateState: JumpRateState; }; export declare const custodyStruct: BeetStruct>; export declare enum Side { None = 0, Long = 1, Short = 2 } export type Position = { buffer: Buffer; owner: PublicKey; pool: PublicKey; custody: PublicKey; collateralCustody: PublicKey; openTime: BigNumber; updateTime: BigNumber; side: Side; price: BigNumber; sizeUsd: BigNumber; collateralUsd: BigNumber; realisedPnlUsd: BigNumber; cumulativeInterestSnapshot: BigNumber; lockedAmount: BigNumber; bump: number; }; export declare const positionStruct: BeetStruct>; export type BorrowPosition = { accountDiscriminator: number[]; owner: PublicKey; pool: PublicKey; custody: PublicKey; openTime: BigNumber; updateTime: BigNumber; borrowSize: BigNumber; cumulativeCompoundedInterestSnapshot: BigNumber; lockedCollateral: BigNumber; bump: number; }; export declare const borrowPositionStruct: BeetStruct>;