import { Address } from "@project-serum/anchor";
import { UserConfig, ReferralsUser } from "./types";
import { PerpetualPointsLeaderboardResponse, PerpetualPointsUserState, UserPointsWidgetData, UserBoostedTotalPointsResponse, ReferralsInfo } from "./types/perpetual_points";
export declare class PerpetualPoints {
    private _baseUrl;
    user?: Address;
    private headers;
    private client;
    private expressClient;
    constructor({ baseUrl, user, accessToken, env }: UserConfig);
    setUser(user: Address): void;
    status(): Promise<UserPointsWidgetData>;
    getLeaderboard(): Promise<PerpetualPointsLeaderboardResponse>;
    pointsSummary(): Promise<PerpetualPointsUserState>;
    boostedTotalPoints(): Promise<UserBoostedTotalPointsResponse>;
    generateReferralCode(user: Address, referralCode: string, accessToken?: string): Promise<ReferralsUser>;
    useReferralCode(user: Address, referralCode: string, accessToken?: string): Promise<ReferralsUser>;
    getReferralsUserInfo(user: Address, accessToken?: string): Promise<ReferralsInfo>;
    getUserReferredByCode(user: Address): Promise<string | undefined>;
    getPPPS1FinalLeaderboard(): Promise<FinalPPPS1Leaderboard>;
    getPPPS1UserAllocation(address: string): Promise<UserPPPS1Allocation | null>;
}
type UserPPPS1Allocation = {
    user: string;
    totalPoints: number;
    lpPoints: number;
    referralPoints: number;
    tradingPoints: number;
    prclAllocation: number;
    rank: number | null;
    finalPPPS1PRCLBoost: number;
    finalPPPS1HOABoost: number;
    finalPPPS1ReferralBoost: number;
};
type FinalPPPS1Leaderboard = UserPPPS1Allocation[];
export {};
//# sourceMappingURL=perpetualPoints.d.ts.map