import { GenericModels } from "./GenericModels"; /** * Reusable request and response DTOs for the Group domain. * * Group operations target a **specific group entity** by * `groupId`. On the client variants the backend additionally * cross-checks that the authenticated player is currently a * member with the right role (e.g. `Officer` to invite, * `Owner` to disband). * * Three role variants per operation: * - **Client** (no prefix): used by `GNNetwork.group`, scoped * to groups the caller has permission to act on. * - **`Server*`**: used by `GNNetwork.group.server`, can act on * any group with a valid server `secretKey`. * - **`Admin*`**: used by `GNNetwork.group.admin`, full * privileged access for backoffice tooling. * * Group state changes propagate to every connected member * device through the realtime events * {@link OnGroupMemberUpdateEventHandler} (member roster) and * {@link OnGroupMessageUpdateEventHandler} (chat / wall). */ export declare namespace GroupModels { /** * Selects which optional group fields and lightweight relations should be returned. * Boolean flags default to `false`; key arrays narrow list-style fields to specific keys only. */ class InfoRequestParam { /** * Includes the group catalog ID. */ catalogId?: boolean; /** * Includes lightweight member items for the group. */ members?: boolean; removeStatus?: boolean; segments?: boolean; customDatas?: boolean; displayName?: boolean; avatar?: boolean; tsCreate?: boolean; tags?: boolean; groupCurrencies?: boolean; groupStatistics?: boolean; groupDatas?: boolean; /** * Includes lightweight inventory relation items for the group, optionally filtered by `itemCatalogIds`. */ groupInventories?: boolean; groupDataKeys?: Array; groupCurrencyKeys?: Array; groupStatisticsKeys?: Array; customDataKeys?: Array; tagKeys?: Array; /** * Restricts `groupInventories` to relation items whose catalog IDs match this list. */ itemCatalogIds?: Array; } /** * Defines the reusable parameter block CustomDataParam. */ class CustomDataParam { key: string; value: any; } /** * Defines the reusable parameter block GroupCurrencyParam. */ class GroupCurrencyParam { key: string; amount: number; } /** * Defines the reusable parameter block GroupDataParam. */ class GroupDataParam { key: string; value: any; } /** * Describes one game-player member referenced by a group workflow. */ class GroupMemberParam { userId: string; } /** * Defines the reusable parameter block GroupStatisticsParam. */ class GroupStatisticsParam { key: string; value: number; } /** * Defines the request payload for AddMember. */ class AddMemberRequestData { memberId: string; groupId: string; } /** * Defines the request payload for ServerAddMember. */ class ServerAddMemberRequestData extends AddMemberRequestData { } /** * Defines the request payload for AdminAddMember. */ class AdminAddMemberRequestData extends ServerAddMemberRequestData { } /** * Defines the request payload for AddSegment. */ class AddSegmentRequestData { groupId: string; value: string; } /** * Defines the request payload for ServerAddSegment. */ class ServerAddSegmentRequestData extends AddSegmentRequestData { } /** * Defines the request payload for AdminAddSegment. */ class AdminAddSegmentRequestData extends ServerAddSegmentRequestData { } /** * Defines the request payload for GetAvatar. */ class GetAvatarRequestData { groupId: string; } /** * Defines the request payload for ServerGetAvatar. */ class ServerGetAvatarRequestData extends GetAvatarRequestData { } /** * Defines the request payload for AdminGetAvatar. */ class AdminGetAvatarRequestData extends ServerGetAvatarRequestData { } /** * Defines the request payload for GetCatalogId. */ class GetCatalogIdRequestData { groupId: string; } /** * Defines the request payload for ServerGetCatalogId. */ class ServerGetCatalogIdRequestData extends GetCatalogIdRequestData { } /** * Defines the request payload for AdminGetCatalogId. */ class AdminGetCatalogIdRequestData extends ServerGetCatalogIdRequestData { } /** * Defines the request payload for GetCustomData. */ class GetCustomDataRequestData { groupId: string; customDataKeys?: Array; } /** * Defines the request payload for ServerGetCustomData. */ class ServerGetCustomDataRequestData extends GetCustomDataRequestData { } /** * Defines the request payload for AdminGetCustomData. */ class AdminGetCustomDataRequestData extends ServerGetCustomDataRequestData { } /** * Defines the request payload for GetDisplayName. */ class GetDisplayNameRequestData { groupId: string; } /** * Defines the request payload for ServerGetDisplayName. */ class ServerGetDisplayNameRequestData extends GetDisplayNameRequestData { } /** * Defines the request payload for AdminGetDisplayName. */ class AdminGetDisplayNameRequestData extends ServerGetDisplayNameRequestData { } /** * Defines the request payload for GetGroupCurrency. */ class GetGroupCurrencyRequestData { groupId: string; groupCurrencyKeys?: Array; } /** * Defines the request payload for ServerGetGroupCurrency. */ class ServerGetGroupCurrencyRequestData extends GetGroupCurrencyRequestData { } /** * Defines the request payload for AdminGetGroupCurrency. */ class AdminGetGroupCurrencyRequestData extends ServerGetGroupCurrencyRequestData { } /** * Defines the request payload for GetGroupData. */ class GetGroupDataRequestData { groupId: string; groupDataKeys?: Array; } /** * Defines the request payload for ServerGetGroupData. */ class ServerGetGroupDataRequestData extends GetGroupDataRequestData { } /** * Defines the request payload for AdminGetGroupData. */ class AdminGetGroupDataRequestData extends ServerGetGroupDataRequestData { } /** * Defines the request payload for GetGroupInformation. */ class GetGroupInformationRequestData { groupId: string; infoRequestParam: InfoRequestParam; } /** * Defines the request payload for ServerGetGroupInformation. */ class ServerGetGroupInformationRequestData extends GetGroupInformationRequestData { } /** * Defines the request payload for AdminGetGroupInformation. */ class AdminGetGroupInformationRequestData extends ServerGetGroupInformationRequestData { } /** * Defines the request payload for GetGroupInventory. */ class GetGroupInventoryRequestData { groupId: string; itemCatalogIds?: Array; } /** * Defines the request payload for ServerGetGroupInventory. */ class ServerGetGroupInventoryRequestData extends GetGroupInventoryRequestData { } /** * Defines the request payload for AdminGetGroupInventory. */ class AdminGetGroupInventoryRequestData extends ServerGetGroupInventoryRequestData { } /** * Reads persisted group messages using skip/limit pagination. */ class GetGroupMessageRequestData { groupId: string; skip?: number; limit?: number; } /** * Defines the request payload for ServerGetGroupMessage. */ class ServerGetGroupMessageRequestData extends GetGroupMessageRequestData { } /** * Defines the request payload for AdminGetGroupMessage. */ class AdminGetGroupMessageRequestData extends ServerGetGroupMessageRequestData { } /** * Defines the request payload for GetGroupStatistics. */ class GetGroupStatisticsRequestData { groupId: string; statisticsKeys?: Array; } /** * Defines the request payload for ServerGetGroupStatistics. */ class ServerGetGroupStatisticsRequestData extends GetGroupStatisticsRequestData { } /** * Defines the request payload for AdminGetGroupStatistics. */ class AdminGetGroupStatisticsRequestData extends ServerGetGroupStatisticsRequestData { } /** * Defines the request payload for GetGroupsWithDisplayName. */ class GetGroupsWithDisplayNameRequestData { keyword: string; infoRequestParam: InfoRequestParam; skip?: number; limit?: number; } /** * Defines the request payload for ServerGetGroupsWithDisplayName. */ class ServerGetGroupsWithDisplayNameRequestData extends GetGroupsWithDisplayNameRequestData { } /** * Defines the request payload for AdminGetGroupsWithDisplayName. */ class AdminGetGroupsWithDisplayNameRequestData extends ServerGetGroupsWithDisplayNameRequestData { } /** * Defines the request payload for GetGroupsWithSegment. */ class GetGroupsWithSegmentRequestData { value: string; infoRequestParam: InfoRequestParam; skip?: number; limit?: number; } /** * Defines the request payload for ServerGetGroupsWithSegment. */ class ServerGetGroupsWithSegmentRequestData extends GetGroupsWithSegmentRequestData { } /** * Defines the request payload for AdminGetGroupsWithSegment. */ class AdminGetGroupsWithSegmentRequestData extends ServerGetGroupsWithSegmentRequestData { } /** * Defines the request payload for GetGroupsWithTag. */ class GetGroupsWithTagRequestData { key: string; value: string; infoRequestParam: InfoRequestParam; skip?: number; limit?: number; } /** * Defines the request payload for ServerGetGroupsWithTag. */ class ServerGetGroupsWithTagRequestData extends GetGroupsWithTagRequestData { } /** * Defines the request payload for AdminGetGroupsWithTag. */ class AdminGetGroupsWithTagRequestData extends ServerGetGroupsWithTagRequestData { } /** * Defines the request payload for GetMembers. */ class GetMembersRequestData { groupId: string; } /** * Defines the request payload for ServerGetMembers. */ class ServerGetMembersRequestData extends GetMembersRequestData { } /** * Defines the request payload for AdminGetMembers. */ class AdminGetMembersRequestData extends ServerGetMembersRequestData { } /** * Defines the request payload for GetRemoveStatus. */ class GetRemoveStatusRequestData { groupId: string; } /** * Defines the request payload for ServerGetRemoveStatus. */ class ServerGetRemoveStatusRequestData extends GetRemoveStatusRequestData { } /** * Defines the request payload for AdminGetRemoveStatus. */ class AdminGetRemoveStatusRequestData extends ServerGetRemoveStatusRequestData { } /** * Defines the request payload for GetSegment. */ class GetSegmentRequestData { groupId: string; } /** * Defines the request payload for ServerGetSegment. */ class ServerGetSegmentRequestData extends GetSegmentRequestData { } /** * Defines the request payload for AdminGetSegment. */ class AdminGetSegmentRequestData extends ServerGetSegmentRequestData { } /** * Defines the request payload for GetStatisticsLeaderboardAroundGroup. */ class GetStatisticsLeaderboardAroundGroupRequestData { groupId: string; key: string; infoRequestParam: InfoRequestParam; skip?: number; limit?: number; loadFromCache?: boolean; catalogId?: string; } /** * Defines the request payload for ServerGetStatisticsLeaderboardAroundGroup. */ class ServerGetStatisticsLeaderboardAroundGroupRequestData extends GetStatisticsLeaderboardAroundGroupRequestData { } /** * Defines the request payload for AdminGetStatisticsLeaderboardAroundGroup. */ class AdminGetStatisticsLeaderboardAroundGroupRequestData extends ServerGetStatisticsLeaderboardAroundGroupRequestData { } /** * Defines the request payload for GetStatisticsLeaderboard. */ class GetStatisticsLeaderboardRequestData { key: string; infoRequestParam: InfoRequestParam; skip?: number; limit?: number; loadFromCache?: boolean; version?: string; catalogId?: string; } /** * Defines the request payload for ServerGetStatisticsLeaderboard. */ class ServerGetStatisticsLeaderboardRequestData extends GetStatisticsLeaderboardRequestData { } /** * Defines the request payload for AdminGetStatisticsLeaderboard. */ class AdminGetStatisticsLeaderboardRequestData extends ServerGetStatisticsLeaderboardRequestData { } /** * Defines the request payload for GetCreateLeaderboard. */ class GetCreateLeaderboardRequestData { infoRequestParam: InfoRequestParam; skip?: number; limit?: number; loadFromCache?: boolean; } /** * Defines the request payload for ServerGetCreateLeaderboard. */ class ServerGetCreateLeaderboardRequestData extends GetCreateLeaderboardRequestData { } /** * Defines the request payload for AdminGetCreateLeaderboard. */ class AdminGetCreateLeaderboardRequestData extends ServerGetCreateLeaderboardRequestData { } /** * Defines the request payload for GetTag. */ class GetTagRequestData { groupId: string; tagKeys: Array; } /** * Defines the request payload for ServerGetTag. */ class ServerGetTagRequestData extends GetTagRequestData { } /** * Defines the request payload for AdminGetTag. */ class AdminGetTagRequestData extends ServerGetTagRequestData { } /** * Defines the request payload for GetTsCreate. */ class GetTsCreateRequestData { groupId: string; } /** * Defines the request payload for ServerGetTsCreate. */ class ServerGetTsCreateRequestData extends GetTsCreateRequestData { } /** * Defines the request payload for AdminGetTsCreate. */ class AdminGetTsCreateRequestData extends ServerGetTsCreateRequestData { } /** * Defines the request payload for CreateGroupItem. */ class CreateGroupItemRequestData { groupId: string; catalogId: string; classId: string; displayName?: string; amount?: number; } /** * Defines the request payload for ServerCreateGroupItem. */ class ServerCreateGroupItemRequestData extends CreateGroupItemRequestData { } /** * Defines the request payload for AdminCreateGroupItem. */ class AdminCreateGroupItemRequestData extends ServerCreateGroupItemRequestData { } /** * Defines the request payload for RemoveGroupItem. */ class RemoveGroupItemRequestData { groupId: string; itemId: string; } /** * Defines the request payload for ServerRemoveGroupItem. */ class ServerRemoveGroupItemRequestData extends RemoveGroupItemRequestData { } /** * Defines the request payload for AdminRemoveGroupItem. */ class AdminRemoveGroupItemRequestData extends ServerRemoveGroupItemRequestData { } /** * Defines the request payload for RemoveMember. */ class RemoveMemberRequestData { memberId: string; groupId: string; } /** * Defines the request payload for ServerRemoveMember. */ class ServerRemoveMemberRequestData extends RemoveMemberRequestData { } /** * Defines the request payload for AdminRemoveMember. */ class AdminRemoveMemberRequestData extends ServerRemoveMemberRequestData { } /** * Defines the request payload for RemoveSegment. */ class RemoveSegmentRequestData { groupId: string; value: string; } /** * Defines the request payload for ServerRemoveSegment. */ class ServerRemoveSegmentRequestData extends RemoveSegmentRequestData { } /** * Defines the request payload for AdminRemoveSegment. */ class AdminRemoveSegmentRequestData extends ServerRemoveSegmentRequestData { } /** * Defines the request payload for RemoveTag. */ class RemoveTagRequestData { groupId: string; key: string; } /** * Defines the request payload for ServerRemoveTag. */ class ServerRemoveTagRequestData extends RemoveTagRequestData { } /** * Defines the request payload for AdminRemoveTag. */ class AdminRemoveTagRequestData extends ServerRemoveTagRequestData { } /** * Sends a group message through the HTTP group workflow. * `senderId` is always required and must identify the logical sender explicitly. */ class SendGroupMessageRequestData { senderId: string; groupId: string; message: string; } /** * Defines the request payload for ServerSendGroupMessage. */ class ServerSendGroupMessageRequestData extends SendGroupMessageRequestData { } /** * Defines the request payload for AdminSendGroupMessage. */ class AdminSendGroupMessageRequestData extends ServerSendGroupMessageRequestData { } /** * Defines the request payload for SetAvatar. */ class SetAvatarRequestData { groupId: string; type: number; value: string; } /** * Defines the request payload for ServerSetAvatar. */ class ServerSetAvatarRequestData extends SetAvatarRequestData { } /** * Defines the request payload for AdminSetAvatar. */ class AdminSetAvatarRequestData extends ServerSetAvatarRequestData { } /** * Defines the request payload for SetCustomData. */ class SetCustomDataRequestData { groupId: string; customDatas: Array; } /** * Defines the request payload for ServerSetCustomData. */ class ServerSetCustomDataRequestData extends SetCustomDataRequestData { } /** * Defines the request payload for AdminSetCustomData. */ class AdminSetCustomDataRequestData extends ServerSetCustomDataRequestData { } /** * Defines the request payload for SetDisplayName. */ class SetDisplayNameRequestData { groupId: string; displayName: string; } /** * Defines the request payload for ServerSetDisplayName. */ class ServerSetDisplayNameRequestData extends SetDisplayNameRequestData { } /** * Defines the request payload for AdminSetDisplayName. */ class AdminSetDisplayNameRequestData extends ServerSetDisplayNameRequestData { } /** * Defines the request payload for ChangeGroupCurrency. */ class ChangeGroupCurrencyRequestData { groupId: string; groupCurrencies: Array; log?: string; } /** * Defines the request payload for ServerChangeGroupCurrency. */ class ServerChangeGroupCurrencyRequestData extends ChangeGroupCurrencyRequestData { } /** * Defines the request payload for AdminChangeGroupCurrency. */ class AdminChangeGroupCurrencyRequestData extends ServerChangeGroupCurrencyRequestData { } /** * Defines the request payload for SetGroupData. */ class SetGroupDataRequestData { groupId: string; groupDatas: Array; } /** * Defines the request payload for ServerSetGroupData. */ class ServerSetGroupDataRequestData extends SetGroupDataRequestData { } /** * Defines the request payload for AdminSetGroupData. */ class AdminSetGroupDataRequestData extends ServerSetGroupDataRequestData { } /** * Defines the request payload for ChangeGroupStatistics. */ class ChangeGroupStatisticsRequestData { groupId: string; groupStatistics: Array; log?: string; } /** * Defines the request payload for ServerChangeGroupStatistics. */ class ServerChangeGroupStatisticsRequestData extends ChangeGroupStatisticsRequestData { } /** * Defines the request payload for AdminChangeGroupStatistics. */ class AdminChangeGroupStatisticsRequestData extends ServerChangeGroupStatisticsRequestData { } /** * Defines the request payload for SetRemoveStatus. */ class SetRemoveStatusRequestData { groupId: string; reason?: string; } /** * Defines the request payload for ServerSetRemoveStatus. */ class ServerSetRemoveStatusRequestData extends SetRemoveStatusRequestData { } /** * Defines the request payload for AdminSetRemoveStatus. */ class AdminSetRemoveStatusRequestData extends ServerSetRemoveStatusRequestData { } /** * Defines the request payload for SetTag. */ class SetTagRequestData { groupId: string; key: string; value: string; } /** * Defines the request payload for ServerSetTag. */ class ServerSetTagRequestData extends SetTagRequestData { } /** * Defines the request payload for AdminSetTag. */ class AdminSetTagRequestData extends ServerSetTagRequestData { } /** * Reads currency change logs for one group. * Pagination is token-based rather than skip-based. */ class GetCurrencyLogRequestData { keys?: Array; groupId?: string; limit?: number; /** * Continuation token returned by the previous page. */ token?: string; } /** * Defines the request payload for ServerGetCurrencyLog. */ class ServerGetCurrencyLogRequestData extends GetCurrencyLogRequestData { } /** * Defines the request payload for AdminGetCurrencyLog. */ class AdminGetCurrencyLogRequestData extends ServerGetCurrencyLogRequestData { } /** * Reads statistic change logs for one group. * Pagination is token-based rather than skip-based. */ class GetStatisticsLogRequestData { keys?: Array; groupId?: string; limit?: number; /** * Continuation token returned by the previous page. */ token?: string; } /** * Defines the request payload for ServerGetStatisticsLog. */ class ServerGetStatisticsLogRequestData extends GetStatisticsLogRequestData { } /** * Defines the request payload for AdminGetStatisticsLog. */ class AdminGetStatisticsLogRequestData extends ServerGetStatisticsLogRequestData { } /** * Contains the optional fields requested through `InfoRequestParam`. */ class InfoResponseParameters { catalogId?: string; /** * Lightweight member items for the group, not full player snapshots. */ members?: Array; removeStatus?: GenericModels.RemoveStatusItem; segments?: Array; customDatas?: Array; displayName?: string; avatar?: GenericModels.AvatarItem; tsCreate?: number; tags?: Array; groupDatas?: Array; groupCurrencies?: Array; groupStatistics?: Array; /** * Lightweight inventory relation items owned by the group. */ groupInventories?: Array; } /** * Base group response envelope. */ class GroupResponseData { /** * Optional field bag controlled by the corresponding `InfoRequestParam`. */ infoResponseParameters: InfoResponseParameters; } /** * Group envelope that also exposes the resolved group ID. */ class GroupWithGroupIdResponseData extends GroupResponseData { groupId: string; } /** * Defines the response payload for GroupLeaderboard. */ class GroupLeaderboardResponseData extends GroupWithGroupIdResponseData { position: number; backupValue?: number; } /** * Describes one group statistics or currency change log entry. */ class GroupLogResponseData { groupId: string; tsCreate: number; log: string; key: string; amount: number; startValue: number; finalValue: number; } /** * Defines the response payload for GetStatisticsLeaderboard. */ class GetStatisticsLeaderboardResponseData { results: Array; tsCreate: number; } /** * Defines the response payload for GroupsWithGroupId. */ class GroupsWithGroupIdResponseData { results: Array; } /** * Describes one persisted group-message entry. */ class GroupMessageResponseData { message: string; senderId: string; /** * Sender type value defined by backend message semantics. */ senderType: number; tsCreate: number; } /** * Returns one page of persisted group messages. */ class GroupMessagesResponseData { groupMessages: Array; } /** * Defines the request payload for GetCurrencyLeaderboard. */ class GetCurrencyLeaderboardRequestData { key: string; infoRequestParam: InfoRequestParam; skip?: number; limit?: number; loadFromCache?: boolean; catalogId?: string; } /** * Defines the request payload for ServerGetCurrencyLeaderboard. */ class ServerGetCurrencyLeaderboardRequestData extends GetCurrencyLeaderboardRequestData { } /** * Defines the request payload for AdminGetCurrencyLeaderboard. */ class AdminGetCurrencyLeaderboardRequestData extends ServerGetCurrencyLeaderboardRequestData { } /** * Defines the response payload for GetCurrencyLeaderboard. */ class GetCurrencyLeaderboardResponseData { results: Array; } /** * Defines the response payload for GetCreateLeaderboard. */ class GetCreateLeaderboardResponseData { results: Array; } /** * Returns one page of statistics logs. */ class GetStatisticsLogResponseData { results: Array; /** * Continuation token for the next page, or `undefined` when pagination is exhausted. */ token?: string; } /** * Returns one page of currency logs. */ class GetCurrencyLogResponseData { results: Array; /** * Continuation token for the next page, or `undefined` when pagination is exhausted. */ token?: string; } /** * Defines an intentionally empty response payload. */ class EmptyResponseData { } }