import type { ItemTypeId } from "@valapi/lib"; import type { PromiseResponse } from "@valapi/auth"; import { WebClientService } from "../client/WebClientService"; export declare namespace Store { type Currency = Record; interface Wallet { Balances: Store.Currency; CurrencyLimits: Record; }>; } interface Offer { OfferID: string; IsDirectPurchase: boolean; StartDate: Date; Cost: Store.Currency; Rewards: Array<{ ItemTypeID: string; ItemID: string; Quantity: number; }>; } type UpgradeCurrencyOffers = Array<{ OfferID: string; StorefrontItemID: string; Offer: Store.Offer; DiscountedPercent: number; }>; interface Bundle { ID: string; DataAssetID: string; CurrencyID: string; Items: Array<{ Item: { ItemTypeID: string; ItemID: string; Amount: number; }; BasePrice: number; CurrencyID: string; DiscountPercent: number; DiscountedPrice: number; IsPromoItem: boolean; }>; ItemOffers: Array<{ BundleItemOfferID: string; Offer: Store.Offer; DiscountPercent: number; DiscountedCost: Store.Currency; }>; TotalBaseCost: Store.Currency; TotalDiscountedCost: Store.Currency; TotalDiscountPercent: number; DurationRemainingInSeconds: number; WholesaleOnly: boolean; } interface Storefront { FeaturedBundle: { Bundle: Store.Bundle; Bundles: Array; BundleRemainingDurationInSeconds: number; }; SkinsPanelLayout: { SingleItemOffers: Array; SingleItemStoreOffers: Array; SingleItemOffersRemainingDurationInSeconds: number; }; UpgradeCurrencyStore: { UpgradeCurrencyOffers: Store.UpgradeCurrencyOffers; }; BonusStore?: { BonusStoreOffers: Array<{ BonusOfferID: string; Offer: Store.Offer; DiscountPercent: number; DiscountCosts: Store.Currency; IsSeen: boolean; }>; BonusStoreRemainingDurationInSeconds: number; }; AccessoryStore: { AccessoryStoreOffers: Array<{ Offer: Store.Offer; ContractID: string; }>; AccessoryStoreRemainingDurationInSeconds: number; StorefrontID: string; }; } interface Offers { Offers: Array; UpgradeCurrencyOffers: Store.UpgradeCurrencyOffers; } interface Entitlements { ItemTypeID: string; Entitlements: Array<{ TypeID: string; ItemID: string; }>; } interface EntitlementsWithInstance extends Omit { Entitlements: Array<{ TypeID: string; ItemID: string; InstanceID: string; }>; } interface Agent { AgentStore: { AgentStoreOffers: Array<{ AgentID: string; StoreOffers: Array; }>; FeaturedAgent: string; }; } } export declare class Store extends WebClientService { getWallet(subject: string): PromiseResponse; getOffers(): PromiseResponse; getEntitlements(subject: string, itemTypeId: "dd3bf334-87f3-40bd-b043-682a57a8dc3a"): PromiseResponse; getEntitlements(subject: string, itemTypeId: ItemTypeId.ID): PromiseResponse; get StoreFront(): StoreFront; } export declare class StoreFront extends WebClientService { get(subject: string): PromiseResponse; getAgent(): PromiseResponse; /** * @deprecated Please, Contact us if you find out how its works */ revealNightMarketOffers(subject: string): PromiseResponse; }