/** * Cross-domain DTOs shared by every API namespace in the SDK. * * The classes in this namespace are deliberately agnostic of * any single domain — they describe small, reusable building * blocks (avatar entries, key-value pairs, currency entries, * statistics entries, friend / group / member references, * inventory references, ban entries, ...) that appear inside * the larger request / response DTOs of the per-domain models. * * The lookup helpers on {@link GNUtils} consume the array * forms directly: * - `toFriendDictionary(friends)` → `Map` * - `toGroupDictionary(groups)` → `Map` * - `toCurrenciesDictionary(currencies)` → * `Map` * - `toStatisticsDictionary(stats)` → * `Map` * - and similar for tags / data items / inventory items. * * All field decorators here use canonical wire keys from * {@link ParameterCode} so the same shape decodes consistently * across every domain that embeds these items. */ export declare namespace GenericModels { /** * Represents a generic avatar payload. */ class AvatarItem { /** Backend-defined avatar type identifier. The public SDK currently does not export a dedicated avatar enum. */ type: number; /** Avatar value, typically a URL, file id, or provider-specific string. */ value: string; } /** * Represents a key-value tag entry. */ class TagItem { /** Tag key used to identify the metadata entry. */ key: string; /** Tag value associated with `key`. */ value: string; } /** * Represents a ban state entry returned by player-auth or player-profile flows. */ class BanItem { /** Expiration timestamp of the current ban state. */ tsExpire: number; /** Human-readable ban reason when provided by the backend. */ reason: string; } /** * Represents an arbitrary key-value data entry. */ class DataItem { /** Data entry key used to identify the payload. */ key: string; /** Raw value returned by the backend. This may be a primitive, `GNHashtable`, `GNArray`, or plain object-like data. */ value: any; } /** * Represents one currency entry. */ class CurrencyItem { /** Currency key such as the configured currency code or logical name. */ key: string; /** Numeric balance of the currency identified by `key`. */ value: number; } /** * Represents one statistics entry. */ class StatisticsItem { /** Statistic key such as the configured metric name. */ key: string; /** Numeric value of the statistic identified by `key`. */ value: number; } /** * Represents a lightweight relation item pointing to a character. */ class CharacterItem { /** Character identifier of the related character entity. */ characterId: string; /** Catalog identifier associated with the related character. */ catalogId: string; } /** * Represents the current owner of an entity such as an inventory item. */ class OwnerItem { /** Owner type. Map this value with the public `OwnerType` enum. */ type: number; /** Owner id paired with `type`. */ id: string; } /** * Represents soft-remove metadata for an entity. */ class RemoveStatusItem { /** Removal timestamp when the entity was soft-removed. */ tsRemove: number; /** Removal reason when the backend provides one. */ reason?: string; } /** * Represents a lightweight relation item pointing to an inventory item. */ class InventoryItem { /** Inventory item identifier of the related item entity. */ itemId: string; /** Catalog identifier associated with the related inventory item. */ catalogId: string; /** Class identifier associated with the related inventory item. */ classId: string; } /** * Represents a lightweight relation item pointing to a group. */ class GroupItem { /** Group identifier of the related group entity. */ groupId: string; /** Catalog identifier associated with the related group. */ catalogId: string; /** Group relation status. Map this value with the public `GroupStatus` enum. */ status: number; /** Timestamp of the last group status change. */ tsLastStatusUpdate: number; } /** * Represents a lightweight relation item pointing to a friend relation. */ class FriendItem { /** Friend identifier of the related friend entity. */ friendId: string; /** Catalog identifier associated with the related friend entity. */ catalogId: string; /** Friend relation status. Map this value with the public `FriendStatus` enum. */ status: number; /** Timestamp of the last friend status change. */ tsLastStatusUpdate: number; } /** * Represents a lightweight relation item pointing to a group member. */ class MemberItem { /** Member identifier of the related group member. */ memberId: string; /** Member relation status. Map this value with the public member-status enum when available. */ status: number; } }