///
import { BN, PublicKey } from '@drift-labs/sdk';
import { JsonObject } from 'cerializr';
import { CompetitionResult, CompetitionRoundSummaryRecord, CompetitionRoundWinnerRecord, LiveCompetitionInfo } from '../types/types';
export declare class SerializableSummaryEvent implements CompetitionRoundSummaryRecord {
competition: PublicKey;
roundNumber: BN;
roundStartTs: BN;
roundEndTs: BN;
prizePlacement: BN;
prizeOddsNumerator: BN;
prizeRandomness: BN;
prizeRandomnessMax: BN;
maxPrizeBucketValue: BN;
prizeAmount: BN;
prizeValue: BN;
prizeBase: BN;
numberOfWinners: BN;
numberOfCompetitorsSettled: BN;
totalScoreSettled: BN;
insuranceVaultBalance: BN;
protocolIfShares: BN;
totalIfShares: BN;
ts: BN;
txSig: string;
slot: number;
}
export declare class SerializableCompetitionRoundWinner implements CompetitionRoundWinnerRecord {
roundNumber: BN;
competitor: PublicKey;
competition: PublicKey;
competitorAuthority: PublicKey;
minDraw: BN;
maxDraw: BN;
winnerPlacement: number;
numberOfWinners: number;
numberOfCompetitorsSettled: BN;
winnerRandomness: BN;
totalScoreSettled: BN;
prizeRandomness: BN;
prizeRandomnessMax: BN;
prizeAmount: BN;
prizeBase: BN;
prizeValue: BN;
ts: BN;
txSig: string;
slot: number;
}
export declare class SerializableCompetitionResult implements CompetitionResult {
startTs: number;
endTs: number;
roundNumber: number;
competitors: BN;
totalTickets: BN;
summaryEvent: SerializableSummaryEvent;
winners: SerializableCompetitionRoundWinner[];
}
export declare class SerializableLiveCompetitionInfo implements LiveCompetitionInfo {
lastFetchedTs: number;
roundNumber: number;
endTs: number;
totalCompetitors: number;
totalTickets: BN;
topCompetitors: any;
}
export declare const Serializer: {
Serialize: {
SerializableSummaryEvent: (cls: SerializableSummaryEvent) => JsonObject;
SerializableCompetitionRoundWinner: (cls: SerializableCompetitionRoundWinner) => JsonObject;
SerializableCompetitionResult: (cls: SerializableCompetitionResult) => JsonObject;
SerializableLiveCompetitionInfo: (cls: SerializableLiveCompetitionInfo) => JsonObject;
};
Deserialize: {
SerializableSummaryEvent: (cls: Record) => SerializableSummaryEvent;
SerializableCompetitionRoundWinner: (cls: Record) => SerializableCompetitionRoundWinner;
SerializableCompetitionResult: (cls: Record) => SerializableCompetitionResult;
SerializableLiveCompetitionInfo: (cls: Record) => SerializableLiveCompetitionInfo;
};
setDeserializeFromSnakeCase: () => void;
setSerializeFromSnakeCase: () => void;
};