import { MemberStatus } from './RewardUserEnums';
export interface SocialConnection {
    id: string;
    username: string;
    profileImage?: string | null;
    token?: string;
    refreshToken?: string;
    expireDate?: number;
}
export interface SocialsConnections {
    discord?: SocialConnection;
    telegram?: SocialConnection;
}
export declare enum TaskCategory {
    Welcome = "welcome",
    Daily = "daily",
    Brotherhood = "brotherhood",
    PointsBoost = "pointsBoost"
}
export interface Task {
    name: TaskTypes;
    header: string;
    description: string;
    points: number;
    category: TaskCategory;
    progressMax: number;
}
export declare enum AchievementTiers {
    None = "None",
    Bronze = "Bronze",
    Silver = "Silver",
    Gold = "Gold",
    Diamond = "Diamond"
}
interface AchievementTier {
    tier: AchievementTiers;
    progressMax: number;
    points: number;
}
export interface Achievement {
    name: TaskTypes;
    header: string;
    description: string;
    tiers: AchievementTier[];
}
export interface TelegramUser {
    id: string;
    first_name: string;
    last_name: string;
    auth_date: string;
    hash: string;
    photo_url?: string;
    username?: string;
}
export declare enum TaskTypes {
    discord = "discord",
    telegram = "telegram",
    reclaim = "reclaim",
    firstSwap = "firstSwap",
    members = "members",
    quests = "quests",
    swaps = "swaps",
    referrals = "referrals",
    dApps = "dApps",
    chains = "chains",
    dailySwap = "dailySwap",
    dailyDappTx = "dailyDappTx",
    achievementSwaps = "achievementSwaps",
    achievementReferrals = "achievementReferrals",
    achievementDapps = "achievementDapps",
    achievementChains = "achievementChains",
    achievementPrivateSends = "achievementPrivateSends",
    createOrJoinBH = "createOrJoinBH",
    shieldUnshield = "shieldUnshield",
    moneyComes = "moneyComes",
    referralPrivateSendBonus = "referralPrivateSendBonus"
}
export declare enum BrotherhoodTaskTypes {
    swappedChains = "swappedChains",
    interactedDApps = "interactedDApps"
}
export interface TaskProgress {
    name: TaskTypes;
    progress: number;
}
export interface AchievementProgressItem extends TaskProgress {
    currentTier: AchievementTiers;
}
export interface SwapStreakBase {
    dailySwapAmount: number;
    dailySwapHappened: boolean;
    dailySwapMultiplier: number;
    dailySwapStreak: number;
}
export interface SwapStreak extends SwapStreakBase {
    weeklyStreak: Date[];
}
export interface SwapStreakClient extends SwapStreakBase {
    weeklyStreak: string[];
    joinedAt?: string;
}
export interface RewardsUserInfo {
    ethereumAddress: string;
    username: string;
    migratedSeasonOnePoints: number;
    spentPoints: number;
    lastTvl: number;
    profileImage?: string;
    lastVerify?: string;
    socialsConnections?: SocialsConnections;
    swappedChains: number[];
    interactedDApps: string[];
    shieldHappened: boolean;
    unshieldHappened: boolean;
    pointsToShowInCongratsPopup: number;
    accessCode?: string;
    accessCodeMultiplierExpiresAt?: Date | string;
}
export interface RewardsUser extends RewardsUserInfo, SwapStreak {
    tasksProgress: TaskProgress[];
    achievementsProgress: AchievementProgressItem[];
    completedTasks: string[];
    memberStatus: MemberStatus;
    currentMonthUsdEarnings: number;
}
export interface BrotherhoodInfo {
    brotherhoodId: number;
    name: string;
    profileImage: string;
    inviteButtonName: string;
    inviteButtonLink: string;
    invitationToken: string;
    isPublic: boolean;
    createdAt: string;
    updatedAt: string;
    members: string[];
    description: string;
    swappedChains: number[];
    interactedDApps: string[];
}
export interface Brotherhood extends BrotherhoodInfo {
    tasksProgress: TaskProgress[];
    completedTasks: string[];
}
export interface PublicBrotherhoodWithStats {
    allTimeTotalPoints: number;
    weeklyMultiplier: number;
    memberCount: number;
    name: string;
    profileImage: string;
    brotherhoodId: number;
}
export {};
