import { web3 } from '@coral-xyz/anchor';
import { LayoutObject } from '@solana/buffer-layout';
import { PublicKey } from '@solana/web3.js';
export interface BondingCurveRaw {
    delta: bigint;
    bondingType: number;
}
export declare const BondingCurveRawLayout: import("@solana/buffer-layout").Structure<BondingCurveRaw>;
export interface BondOfferValidationRaw {
    loanToValueFilter: bigint;
    durationFilter: bigint;
    maxReturnAmountFilter: bigint;
    bondFeatures: number;
}
export declare const BondOfferValidationLayout: import("@solana/buffer-layout").Structure<BondOfferValidationRaw>;
export interface WhitelistEntryRaw {
    fraktMarket: web3.PublicKey;
    whitelistType: number;
    whitelistedAddress: web3.PublicKey;
}
export declare const WhitelistEntryLayout: import("@solana/buffer-layout").Structure<WhitelistEntryRaw>;
export interface BondOfferV2Raw {
    hadoMarket: web3.PublicKey;
    pairState: number;
    bondingCurve: LayoutObject;
    baseSpotPrice: bigint;
    mathCounter: bigint;
    currentSpotPrice: bigint;
    concentrationIndex: bigint;
    bidCap: bigint;
    bidSettlement: bigint;
    edgeSettlement: bigint;
    fundsSolOrTokenBalance: bigint;
    buyOrdersQuantity: bigint;
    lastTransactedAt: bigint;
    assetReceiver: web3.PublicKey;
    validation: LayoutObject;
}
export declare const BondOfferV2Layout: import("@solana/buffer-layout").Structure<BondOfferV2Raw>;
interface FraktBondRaw {
    fraktBondState: number;
    bondTradeTransactionsCounter: number;
    borrowedAmount: bigint;
    banxStake: web3.PublicKey;
    fraktMarket: web3.PublicKey;
    amountToReturn: bigint;
    actualReturnedAmount: bigint;
    terminatedCounter: number;
    fbondTokenMint: web3.PublicKey;
    fbondTokenSupply: bigint;
    activatedAt: bigint;
    liquidatingAt: bigint;
    fbondIssuer: web3.PublicKey;
    repaidOrLiquidatedAt: bigint;
    currentPerpetualBorrowed: bigint;
    lastTransactedAt: bigint;
    refinanceAuctionStartedAt: bigint;
}
export declare const FraktBondLayout: import("@solana/buffer-layout").Structure<FraktBondRaw>;
interface BondTradeTransactionV2Raw {
    bondTradeTransactionState: number;
    bondOffer: web3.PublicKey;
    user: web3.PublicKey;
    amountOfBonds: bigint;
    solAmount: bigint;
    feeAmount: bigint;
    bondTradeTransactionType: number;
    fbondTokenMint: web3.PublicKey;
    soldAt: bigint;
    redeemedAt: bigint;
    redeemResult: number;
    seller: web3.PublicKey;
    isDirectSell: boolean;
}
export declare const BondTradeTransactionV2Layout: import("@solana/buffer-layout").Structure<BondTradeTransactionV2Raw>;
export interface RoundRaw {
    roundState: number;
    roundValue: bigint;
    startedAt: bigint;
    solAmount: bigint;
    feeAmount: bigint;
    participants: bigint;
    roundEndsAt: bigint;
    lastTransactedAt: bigint;
    winner: web3.PublicKey;
    roundNumber: bigint;
    contractBid: bigint;
    placeholdeOne: bigint;
    placeholdeTwo: bigint;
    placeholdeThree: bigint;
    publicKey: web3.PublicKey;
}
export declare const RoundRawLayout: import("@solana/buffer-layout").Structure<RoundRaw>;
export interface UserRoundRaw {
    round: web3.PublicKey;
    startSolPosition: bigint;
    solDeposited: bigint;
    user: web3.PublicKey;
    lastTransactedAt: bigint;
    depositedAt: bigint;
    nftMint: web3.PublicKey;
    jackpotSolAmount: bigint;
    jackpotClaimedAt: bigint;
    jackpotClaimed: boolean;
    placeholderOne: bigint;
    placeholderTwo: number;
    placeholderThree: boolean;
    placeholderFour: boolean;
    placeholderFive: boolean;
}
export declare const UserRoundRawLayout: import("@solana/buffer-layout").Structure<UserRoundRaw>;
export interface RoundSettingsRaw {
    completedRounds: bigint;
    totalSolDeposited: bigint;
    totalFeeCollected: bigint;
    totalParticipants: bigint;
    roundDuration: bigint;
    minSolToDeposit: bigint;
    feePercent: bigint;
    canInitializeNextRound: boolean;
    lastRoundEndsAt: bigint;
    lastTransactedAt: bigint;
    rakebackHadesForSol: bigint;
    contractBid: bigint;
    placeholdeOne: bigint;
    placeholdeTwo: bigint;
}
export declare const RoundSettingsRawLayout: import("@solana/buffer-layout").Structure<RoundSettingsRaw>;
export interface HadespinLeaderboardEntryRaw {
    user: web3.PublicKey;
    totalSolDeposited: bigint;
    totalSolInNftDeposited: bigint;
    totalNftDeposited: bigint;
    totalFeePayed: bigint;
    totalSolWon: bigint;
    lastTransactedAt: bigint;
    placeholderOne: web3.PublicKey;
    placeholderTwo: web3.PublicKey;
}
export declare const HadespinLeaderboardEntryLayout: import("@solana/buffer-layout").Structure<HadespinLeaderboardEntryRaw>;
export interface HadespinLeaderboardWeekEntryRaw {
    user: web3.PublicKey;
    week: bigint;
    totalSolDeposited: bigint;
    totalSolInNftDeposited: bigint;
    totalNftDeposited: bigint;
    totalFeePayed: bigint;
    totalSolWon: bigint;
    lastTransactedAt: bigint;
    placeholderOne: web3.PublicKey;
    placeholderTwo: web3.PublicKey;
}
export declare const HadespinLeaderboardWeekEntryLayout: import("@solana/buffer-layout").Structure<HadespinLeaderboardEntryRaw>;
export interface HadespinRakebackRaw {
    user: web3.PublicKey;
    hadesToClaimAmount: bigint;
    claimTimestamp: bigint;
    claimedAt: bigint;
    claimed: boolean;
    lastTransactedAt: bigint;
    placeholderOne: web3.PublicKey;
}
export declare const HadespinRakebackLayout: import("@solana/buffer-layout").Structure<HadespinRakebackRaw>;
export interface HadoMarketRaw {
    marketAuthority: web3.PublicKey;
    marketState: number;
    marketTrustType: number;
    pairValidationType: number;
    fraktMarket: web3.PublicKey;
    minBidCap: bigint;
    minMarketFee: bigint;
    whitelistType: number;
    whitelistedAddress: web3.PublicKey;
}
export declare const HadoMarketLayout: import("@solana/buffer-layout").Structure<HadoMarketRaw>;
export interface LenderLeaderboardRaw {
    user: web3.PublicKey;
    leaderboardState: number;
    lastClaimedAt: bigint;
    totalClaimedAmount: bigint;
    totalInterestRewards: bigint;
    totalLent: bigint;
    totalRepaid: bigint;
    placeholderOne: bigint;
}
export declare const LenderLeaderboardLayout: import("@solana/buffer-layout").Structure<LenderLeaderboardRaw>;
export interface LenderWeeklyLeaderboardRaw {
    user: web3.PublicKey;
    leaderboardState: number;
    lastWeeklyClaimedAt: bigint;
    totalWeeklyClaimedAmount: bigint;
    week: bigint;
    totalInterestRewards: bigint;
    totalLent: bigint;
    totalRepaid: bigint;
    placeholderOne: bigint;
}
export declare const LenderWeeklyLeaderboardLayout: import("@solana/buffer-layout").Structure<LenderWeeklyLeaderboardRaw>;
export interface RepaymentCallRaw {
    callState: number;
    user: web3.PublicKey;
    bond: web3.PublicKey;
    bondTradeTransaction: web3.PublicKey;
    callAmount: bigint;
    lastUpdatedAt: bigint;
    lastCallAt: bigint;
    lastRepaidAt: bigint;
    placeholderOne: web3.PublicKey;
    publicKey: string;
}
export declare const RepaymentCallLayout: import("@solana/buffer-layout").Structure<RepaymentCallRaw>;
export interface BanxStakingSettingsRaw {
    banxStakingSettingsState: number;
    maxTokenStakeAmount: bigint;
    tokensPerPartnerPoints: bigint;
    tokensStaked: bigint;
    banxStaked: bigint;
    tokensPerWeek: bigint;
    rewardsHarvested: bigint;
    placeholderOne: web3.PublicKey;
}
export declare const BanxStakingSettingsLayout: import("@solana/buffer-layout").Structure<BanxStakingSettingsRaw>;
export interface tokenAccoutnLayoutRaw {
    address: PublicKey;
    mint: PublicKey;
    owner: PublicKey;
    amount: bigint;
    delegate: null | PublicKey;
    delegatedAmount: bigint;
    isInitialized: boolean;
    isFrozen: boolean;
    isNative: boolean;
    rentExemptReserve: null | bigint;
    closeAuthority: null | PublicKey;
}
export declare const tokenAccoutnLayout: import("@solana/buffer-layout").Structure<tokenAccoutnLayoutRaw>;
export type SwapExactInInstructionData = {
    discriminator: number;
    srcLstValueCalcAccs: number;
    dstLstValueCalcAccs: number;
    srcLstIndex: number;
    dstLstIndex: number;
    minAmountOut: bigint;
    amount: bigint;
};
export declare const SwapExactInInstructionDataLayout: import("@solana/buffer-layout").Structure<SwapExactInInstructionData>;
export interface BanxAdventureRaw {
    adventureState: number;
    tokensPerPoints: bigint;
    week: bigint;
    periodStartedAt: bigint;
    periodEndingAt: bigint;
    rewardsToBeDistributed: bigint;
    totalPartnerPoints: bigint;
    totalPlayerPoints: bigint;
    totalTokensStaked: bigint;
    totalBanxSubscribed: bigint;
    amountOfTokensHarvested: bigint;
    placeholderOne: PublicKey;
}
export declare const BanxAdventureLayout: import("@solana/buffer-layout").Structure<BanxAdventureRaw>;
export interface BanxAdventureSubscriptionRaw {
    adventureSubscriptionState: number;
    user: PublicKey;
    adventure: PublicKey;
    banxTokenStake: PublicKey;
    stakeTokensAmount: bigint;
    stakeNftAmount: bigint;
    stakePartnerPointsAmount: bigint;
    stakePlayerPointsAmount: bigint;
    subscribedAt: bigint;
    unsubscribedAt: bigint;
    harvestedAt: bigint;
    amountOfTokensHarvested: bigint;
    placeholderOne: bigint;
    placeholderTwo: bigint;
    placeholderThree: PublicKey;
}
export declare const BanxAdventureSubscriptionLayout: import("@solana/buffer-layout").Structure<BanxAdventureSubscriptionRaw>;
export {};
