/// import { BN, DriftClient, SpotMarketAccount } from '@drift-labs/sdk'; import { Program } from '@coral-xyz/anchor'; import { DriftCompetitions } from './types/drift_competitions'; import { PublicKey, SetComputeUnitLimitParams, TransactionInstruction, TransactionSignature } from '@solana/web3.js'; export declare class CompetitionsClient { driftClient: DriftClient; program: Program; constructor({ driftClient, program, }: { driftClient: DriftClient; program?: Program; }); initializeCompetition({ name, nextRoundExpiryTs, competitionExpiryTs, roundDuration, maxEntriesPerCompetitor, minSponsorAmount, maxSponsorFraction, numberOfWinners, }: { name: string; nextRoundExpiryTs: BN; competitionExpiryTs: BN; roundDuration: BN; maxEntriesPerCompetitor: BN; minSponsorAmount: BN; maxSponsorFraction: BN; numberOfWinners: number; }): Promise; updateCompetition(competition: PublicKey, { nextRoundExpiryTs, competitionExpiryTs, roundDuration, maxEntriesPerCompetitor, minSponsorAmount, maxSponsorFraction, numberOfWinners, resetRoundState, }: { nextRoundExpiryTs?: BN | null; competitionExpiryTs?: BN | null; roundDuration?: BN | null; maxEntriesPerCompetitor?: BN | null; minSponsorAmount?: BN | null; maxSponsorFraction?: BN | null; numberOfWinners?: number | null; resetRoundState?: boolean | null; }): Promise; initializeCompetitor({ competition, initDriftUser, }: { competition: PublicKey; initDriftUser?: boolean; }): Promise; claimEntry(competition: PublicKey, competitor?: PublicKey, userStatsKey?: PublicKey): Promise; claimMultipleEntries(entries: BN, tokenAccount: PublicKey, competition: PublicKey, competitor?: PublicKey, userStatsKey?: PublicKey): Promise; claimWinnings({ competition, shares, initIFStake, }: { competition: PublicKey; shares?: BN; initIFStake?: boolean; }): Promise; settleCompetitor(competition: PublicKey, competitor: PublicKey, userStats: PublicKey): Promise; settleAllCompetitors(competition: PublicKey, roundNumber: BN, chunkSize?: number, claimEntryMax?: number): Promise; settleNextWinner(competition: PublicKey): Promise; settleWinner(competition: PublicKey, competitor: PublicKey, userStats: PublicKey): Promise; getCompetitionPublicKey(name: string): PublicKey; getCompetitionDetails(competition: PublicKey, insuranceFundVaultBalance?: BN): Promise<{ roundNumber: BN; roundEndTs: BN; prizePools: BN[]; }>; /** * Used for UI wallet adapters compatibility */ createAndSendTxn(ixs: TransactionInstruction[], txOpts?: { computeUnitParams?: SetComputeUnitLimitParams; noComputeBudgetIx?: boolean; }): Promise; /** * Fetch all time competition events. * NOTE: THIS IS A TEMPORARY SOLUTION AND WILL BE VERY HEAVY ONCE THERE HAVE BEEN A LOT OF HISTORICAL EVENTS EMITTED. */ getAllCompetitionEvents(): Promise[]>; getEntriesForDonation(tokenAmount: BN, spotMarket: SpotMarketAccount): BN; }