import { GNHashtable } from "./../../common/GNData"; import { GenericModels } from "./GenericModels"; /** * Reusable request and response DTOs for the Content domain. * * The Content domain manages two distinct kinds of content: * * 1. **`contentData` blobs** — small structured values keyed by * a content key (`ContentDataParam.key`, `minLength: 2, * maxLength: 32, mustNonNull: true`). Useful for game-wide * config, MOTD strings, remote config flags. Manipulated via * `getContentData` / `setContentData`. * * 2. **File uploads** — binary blobs identified by a `fileId`. * The typed operations only manage the **metadata** slot; * the actual byte transfer happens through * {@link GNNetwork.uploadFile} (push) and * {@link GNNetwork.getDownloadFileUrl} (pull). The standard * workflow is: * * ``` * create upload info → returns fileId + upload token * ↓ * GNNetwork.uploadFile (out of band, multipart POST) * ↓ * request download info → returns short-lived download token * ↓ * GNNetwork.getDownloadFileUrl (out of band, plain GET) * ``` * * Each request DTO has three role variants * (`Client*`, `Server*`, `Admin*`) corresponding to the matching * sub-namespace on `GNNetwork.content`. Server / Admin variants * usually accept additional `userId` / `ownerId` parameters so * trusted callers can act on behalf of any player. */ export declare namespace ContentModels { /** * Defines the reusable parameter block ContentDataParam. */ class ContentDataParam { key: string; data: GNHashtable; } /** * Allocates a new upload slot before the binary payload is uploaded through the separate upload helper. */ class CreateNewFileUploadInfoRequestData { fileName: string; } /** * Defines the request payload for ServerCreateNewFileUploadInfo. */ class ServerCreateNewFileUploadInfoRequestData extends CreateNewFileUploadInfoRequestData { } /** * Defines the request payload for AdminCreateNewFileUploadInfo. */ class AdminCreateNewFileUploadInfoRequestData extends ServerCreateNewFileUploadInfoRequestData { } /** * Reads content configuration blobs, optionally filtered by key list and label. */ class GetContentDataRequestData { keys?: Array; label?: string; } /** * Defines the request payload for ServerGetContentData. */ class ServerGetContentDataRequestData extends GetContentDataRequestData { } /** * Defines the request payload for AdminGetContentData. */ class AdminGetContentDataRequestData extends ServerGetContentDataRequestData { } /** * Defines the request payload for GetFileUploadInfoList. */ class GetFileUploadInfoListRequestData { skip?: number; limit?: number; } /** * Defines the request payload for ServerGetFileUploadInfoList. */ class ServerGetFileUploadInfoListRequestData extends GetFileUploadInfoListRequestData { } /** * Defines the request payload for AdminGetFileUploadInfoList. */ class AdminGetFileUploadInfoListRequestData extends ServerGetFileUploadInfoListRequestData { } /** * Defines the request payload for GetFileUploadInfo. */ class GetFileUploadInfoRequestData { fileId: string; } /** * Defines the request payload for ServerGetFileUploadInfo. */ class ServerGetFileUploadInfoRequestData extends GetFileUploadInfoRequestData { } /** * Defines the request payload for AdminGetFileUploadInfo. */ class AdminGetFileUploadInfoRequestData extends ServerGetFileUploadInfoRequestData { } /** * Defines the request payload for RemoveFileUploadInfo. */ class RemoveFileUploadInfoRequestData { fileId: string; reason?: string; } /** * Defines the request payload for ServerRemoveFileUploadInfo. */ class ServerRemoveFileUploadInfoRequestData extends RemoveFileUploadInfoRequestData { } /** * Defines the request payload for AdminRemoveFileUploadInfo. */ class AdminRemoveFileUploadInfoRequestData extends ServerRemoveFileUploadInfoRequestData { } /** * Requests a short-lived download token for an existing uploaded file. */ class RequestDownloadFileUploadInfoRequestData { fileId: string; } /** * Defines the request payload for ServerRequestDownloadFileUploadInfo. */ class ServerRequestDownloadFileUploadInfoRequestData extends RequestDownloadFileUploadInfoRequestData { } /** * Defines the request payload for AdminRequestDownloadFileUploadInfo. */ class AdminRequestDownloadFileUploadInfoRequestData extends ServerRequestDownloadFileUploadInfoRequestData { } /** * Defines the request payload for SetContentData. */ class SetContentDataRequestData { configs: Array; label?: string; } /** * Defines the request payload for ServerSetContentData. */ class ServerSetContentDataRequestData extends SetContentDataRequestData { } /** * Defines the request payload for AdminSetContentData. */ class AdminSetContentDataRequestData extends ServerSetContentDataRequestData { } /** * Returns the backend-generated file ID for follow-up upload or download workflows. */ class FileIdUploadResponseData { fileId: string; } /** * Defines the response payload for GetContentData. */ class GetContentDataResponseData { configs: Array; } /** * Defines the response payload for GetFileUploadInfoList. */ class GetFileUploadInfoListResponseData { results: Array; } /** * Describes upload metadata stored for one file entry. */ class FileUploadItem { mimeType: string; size: number; folderFileName: string; } /** * Returns metadata for one uploaded file entry. */ class GetFileUploadInfoResponseData extends FileIdUploadResponseData { fileName: string; tsCreate: number; removeStatus: GenericModels.RemoveStatusItem; /** * Upload-expiration timestamp for unfinished uploads when present. */ tsUploadExpire?: number; fileUpload?: FileUploadItem; } /** * Returns the download token consumed by the SDK download helper. */ class RequestDownloadFileUploadInfoResponseData { downloadToken: string; } /** * Defines an intentionally empty response payload. */ class EmptyResponseData { } }