import { IHttpClient } from '@/common/http'; import { IJoliCoin, IGem } from '@/common/rewards/type'; import { IUnlockOptionsEvent } from '@/common/rewards/reward-emitter'; export type CurrencyType = 'JOLI_COIN' | 'JOLI_GEM'; export interface CurrencyHandler { fetchBalance: (httpClient: IHttpClient) => Promise<{ balance: number; } | undefined>; getQuantity: (unlockOptions: IUnlockOptionsEvent | null) => number; getCurrentUser: (unlockOptions: IUnlockOptionsEvent | null) => IJoliCoin | IGem; createUpdatedUser: (balance: number, enableAutoDeduct: boolean) => IJoliCoin | IGem; getUpdateKey: () => keyof Pick; isEnough: (unlockOptions: IUnlockOptionsEvent | null, user: IJoliCoin | IGem) => boolean; } export declare const CURRENCY_HANDLERS: Record;