///
///
///
import { BeetStruct, FixableBeetStruct, DataEnumKeyAsKind } from '@metaplex-foundation/beet';
import { PublicKey } from '@solana/web3.js';
import BigNumber from 'bignumber.js';
export declare enum MarginAccountType {
Normal = 0,
MarketMaker = 1
}
export type AnchorDecimal = {
flags: number;
hi: number;
lo: number;
mid: number;
};
export declare const anchorDecimalStruct: BeetStruct>;
export type Position = {
size: BigNumber;
costOfTrades: BigNumber;
};
export declare const positionStruct: BeetStruct>;
export type OrderState = {
closingOrders: BigNumber;
openingOrder1: BigNumber;
openingOrder2: BigNumber;
};
export declare const orderStateStruct: BeetStruct>;
export type ProductLedger = {
position: Position;
orderState: OrderState;
};
export declare const productLedgerStruct: BeetStruct>;
export type CrossMarginAccount = {
buffer: Buffer;
authority: PublicKey;
delegatedPubkey: PublicKey;
balance: BigNumber;
subaccountIndex: number;
nonce: number;
forceCancelFlag: boolean;
accountType: MarginAccountType;
openOrdersNonces: number[];
openOrdersNoncesPadding: number[];
rebalanceAmount: BigNumber;
lastFundingDeltas: AnchorDecimal[];
lastFundingDeltasPadding: AnchorDecimal[];
productLedgers: ProductLedger[];
productLedgersPadding: ProductLedger[];
padding: Buffer[];
};
export declare const crossMarginAccountStruct: FixableBeetStruct>;
export type ClaimStatus = {
buffer: Buffer;
claimant: PublicKey;
claimedAt: BigNumber;
claimedAmount: BigNumber;
};
export declare const claimStatusStruct: BeetStruct>;
type StakeStateRecord = {
Uninitialized: NonNullable;
Vesting: {
stakeStartEpoch: number;
lastClaimTs: BigNumber;
};
Locked: NonNullable;
};
type StakeState = DataEnumKeyAsKind;
export type StakeAccount = {
accountDiscriminator: number[];
name: number[];
vaultNonce: number;
bitInUse: number;
stakeState: StakeState;
initialStakeAmount: BigNumber;
amountStillStaked: BigNumber;
amountClaimed: BigNumber;
stakeDurationEpochs: number;
authority: PublicKey;
};
export declare const stakeAccountStruct: FixableBeetStruct>;
export {};