import { Address } from "@project-serum/anchor";
import { PublicKey } from "@solana/web3.js";
import { Env } from "./types";
export declare class PointsSeason2 {
    private headers;
    private expressClient;
    constructor(env?: Env);
    isParticipant({ publicKey }: {
        publicKey: PublicKey;
    }): Promise<boolean>;
    getPointsBreakdown({ publicKey }: {
        publicKey: PublicKey;
    }): Promise<PointsBreakdown>;
    getLeaderboard(): Promise<{
        leaderboard: PointsSeason2Leaderboard;
        participantCount: number;
    }>;
    getUserLeaderboardInfo({ publicKey, }: {
        publicKey: Address;
    }): Promise<PointsSeason2LeaderboardItem>;
    participate({ user }: {
        user: PublicKey;
    }): Promise<{
        id: number;
        address: string;
        byteAddress: string;
        joinedAt: string;
    }>;
    getS2FinalLeaderboard(): Promise<FinalPPPS2Leaderboard>;
    getS2UserAllocation({ publicKey, }: {
        publicKey: PublicKey;
    }): Promise<FinalPPPS2LeaderboardRow>;
}
export type FinalPPPS2LeaderboardRow = {
    user: string;
    prclAllocation: number;
    rank: number | null;
    finalBoostedPoints: number;
    finalBoostedMarginCollateralPoints: number;
    finalBoostedFeePoints: number;
    finalBoostedNegativePnlPoints: number;
    finalBoostedLpPoints: number;
    finalBoostedLiquidationPoints: number;
    finalSpecialTraderBoost: number;
    finalStakingLoyaltyBoost: number;
    finalStakedPrclBoost: number;
    finalHoaBoost: number;
    finalLoyaltyBoost: number;
};
export type FinalPPPS2Leaderboard = FinalPPPS2LeaderboardRow[];
type PointsBreakdown = PointsBreakdownItem[];
type PointsBreakdownItem = {
    date: string;
    userAddress: string;
    dailyBoostedPoints: string;
    dailyBoostedMarginCollateralPoints: string;
    dailyBoostedFeePoints: string;
    dailyBoostedNegativePnlPoints: string;
    dailyBoostedLpPoints: string;
    dailyBoostedLiquidationPoints: string;
    heldPrclBoost: string;
    stakedPrclBoost: string;
    hoaBoost: string;
    loyaltyBoost: number;
    totalBoost: string;
    dailyPrclHoldings: string;
    dailyStakedBalance: string;
    dailyHoaHoldings: string;
    tvl: string;
    dailyFees: string;
    dailyNegativePnl: string;
    tradeCount: number;
    dailyLpDeposits: string;
    dailyLpWithdraws: string;
    liquidationCount: number;
    cumulativeMarginBalance: string;
    cumulativeLpShares: string;
};
type PointsSeason2Leaderboard = PointsSeason2LeaderboardItem[];
type PointsSeason2LeaderboardItem = {
    rank: number;
    userAddress: PublicKey;
    totalBoostedPoints: number;
    totalBoostedMarginCollateralPoints: number;
    totalBoostedFeePoints: number;
    totalBoostedNegativePnlPoints: number;
    totalBoostedLpPoints: number;
    totalBoostedLiquidationPoints: number;
    latestHoaBoost: number;
    latestStakedPrclBoost: number;
    latestHoaCount: number;
    latestStakedPrcl: number;
    loyaltyBoost: number;
    totalBoost: number;
};
export {};
//# sourceMappingURL=pointsSeason2.d.ts.map