import Response from "../util/Response"; import { AxiosPromise } from "axios"; export type GameReviewRecommendation = 'recommended' | 'not_recommended' | 'neutral'; export type GameReviewSentiment = 'positive' | 'mixed' | 'negative'; export type GameReviewVoteType = 'helpful' | 'funny' | 'detailed' | 'not_helpful'; export type GameReviewReportReason = 'abuse' | 'spam' | 'off_topic' | 'manipulation' | 'hate' | 'personal_info' | 'other'; export type TitleTokenPurpose = 'install' | 'deploy' | 'hosting'; export type TitleTokenAbility = 'deployments:*' | 'deployments:create' | 'deployments:read' | 'deployments:activate' | 'hosting:*' | 'hosting:read' | 'hosting:deploy' | 'hosting:promote'; export interface CreateTitleTokenRequest { expires_at?: string; name?: string; purpose?: TitleTokenPurpose; abilities?: TitleTokenAbility[]; } export interface TitleToken { id: string; title_id: string; name?: string | null; purpose: TitleTokenPurpose; token_prefix: string; abilities: TitleTokenAbility[]; expires_at?: string | null; revoked: boolean; last_used_at?: string | null; created_at?: string; } export interface CreatedTitleToken { /** Full secret value. Returned once and never retrievable again. */ full_token: string; token: TitleToken; } export interface GameReviewRatings { gameplay?: GameReviewSentiment; performance?: GameReviewSentiment; value?: GameReviewSentiment; content?: GameReviewSentiment; multiplayer?: GameReviewSentiment; monetization?: GameReviewSentiment; stability?: GameReviewSentiment; localization?: GameReviewSentiment; accessibility?: GameReviewSentiment; } export interface CreateGameReviewRequest { recommendation: GameReviewRecommendation; title: string; body: string; review_type?: 'first_impression' | 'full_review' | 'bug_performance_warning' | 'early_access_feedback' | 'multiplayer_community_feedback' | 'monetization_pricing_feedback' | 'changed_opinion_after_update'; liked?: string; needs_work?: string; audience?: string; language?: string; game_version?: string; platform?: string; acquisition_type?: 'purchased' | 'free_to_play' | 'free_copy' | 'promotional_key' | 'beta_key' | 'demo' | 'external_verified'; received_for_free?: boolean; early_access?: boolean; current_version_review?: boolean; main_negative_reason?: 'bugs_crashes' | 'bad_performance' | 'not_enough_content' | 'misleading_marketing' | 'price_value' | 'monetization' | 'community_toxicity' | 'developer_business_decision' | 'localization' | 'server_network' | 'gameplay_design' | 'not_my_type' | 'other'; change_reason?: string; ratings?: GameReviewRatings; } export type UpdateGameReviewRequest = Partial; declare class Titles { /** * List all the Titles. * * @see https://api.glitch.fun/api/documentation#/Titles/edab2e3b061347b06c82258622d239e2 * * @returns promise */ static list(params?: Record): AxiosPromise>; /** * Create a new title. * * @see https://api.glitch.fun/api/documentation#/Titles/storeTitle * * @param data The data to be passed when creating a title. * * @returns Promise */ static create(data: object, params?: Record): AxiosPromise>; /** * Update a title. * * @see https://api.glitch.fun/api/documentation#/Titles/updateTitle * * @param title_id The id of the title to update. * @param data The data to update. * * @returns promise */ static update(title_id: string, data: object, params?: Record): AxiosPromise>; /** * Retrieve the information for a single title. * * @see https://api.glitch.fun/api/documentation#/Titles/getTitleByUUID * * @param title_id The id fo the title to retrieve. * * @returns promise */ static view(title_id: string, params?: Record): AxiosPromise>; /** * Deletes a title. * * @see https://api.glitch.fun/api/documentation#/Titles/deleteTitle * * @param title_id The id of the title to delete. * @returns promise */ static delete(title_id: string, params?: Record): AxiosPromise>; /** * Approve a title * * @see https://api.glitch.fun/api/documentation#/Titles/approveTitle * * @param data The data to be passed when creating a title. * * @returns Promise */ static approve(title_id: string, data: object, params?: Record): AxiosPromise>; /** * Reject a title * * @see https://api.glitch.fun/api/documentation#/Titles/rejectTitle * * @param data The data to be passed when creating a title. * * @returns Promise */ static reject(title_id: string, data: object, params?: Record): AxiosPromise>; /** * Add a user as an administrator to a title * * @see https://api.glitch.fun/api/documentation#/Titles/addTitleAdministrator * * @param data The data to be passed when creating a title. * * @returns Promise */ static addAdministrator(title_id: string, data: object, params?: Record): AxiosPromise>; /** * Remove a user as an administrator toa tile * * @see https://api.glitch.fun/api/documentation#/Titles/removeTitleAdministrator * * @param data The data to be passed when creating a title. * * @returns Promise */ static removeAdministrator(title_id: string, user_id: string, data?: object, params?: Record): AxiosPromise>; /** * Updates the main image for the title using a File object. * * @see https://api.glitch.fun/api/documentation#/Titles/uploadTitleMainImage * * @param file The file object to upload. * @param data Any additional data to pass along to the upload. * * @returns promise */ static uploadMainImageFile(title_id: string, file: File, data?: object, params?: Record): AxiosPromise>; /** * Updates the main image for the title using a Blob. * * @see https://api.glitch.fun/api/documentation#/Titles/uploadTitleMainImage * * @param blob The blob to upload. * @param data Any additional data to pass along to the upload * * @returns promise */ static uploadMainImageBlob(title_id: string, blob: Blob, data?: object, params?: Record): AxiosPromise>; /** * Updates the banner image for the title using a File object. * * @see https://api.glitch.fun/api/documentation#/Titles/uploadTitleBannerImage * * @param file The file object to upload. * @param data Any additional data to pass along to the upload. * * @returns promise */ static uploadBannerImageFile(title_id: string, file: File, data?: object, params?: Record): AxiosPromise>; /** * Updates the banner image for the title using a Blob. * * @see https://api.glitch.fun/api/documentation#/Titles/uploadTitleBannerImage * * @param blob The blob to upload. * @param data Any additional data to pass along to the upload * * @returns promise */ static uploadBannerImageBlob(title_id: string, blob: Blob, data?: object, params?: Record): AxiosPromise>; /** * Add media to a title. */ static addMedia(title_id: string, data?: object, params?: Record): AxiosPromise>; /** * Remove media from a title. */ static removeMedia(title_id: string, media_id: string, params?: Record): AxiosPromise>; /** * Update the ordering of media items (images, videos, etc.) for a title. * * @see https://api.glitch.fun/api/documentation#/Titles/updateMediaOrder * * @param title_id The ID of the title to update * @param media_order An array of objects, each containing: * - media_id: string (the UUID of the media) * - order: number (the new order/index) * @returns Promise containing the server response */ static updateMediaOrder(title_id: string, media_order: { media_id: string; order: number; }[]): AxiosPromise>; /** * Upload a CSV/Excel file containing wishlist data for a title. * * @param title_id The UUID of the title * @param file The CSV or Excel file * @param data Any additional form data, e.g. platform * @returns AxiosPromise */ static importWishlist(title_id: string, file: File | Blob, data?: Record, params?: Record): AxiosPromise>; /** * Retrieve the wishlist data for a specific title. * * @param title_id The UUID of the title * @param params Optional query params, e.g. { platform: 'steam', start_date: '2025-01-01', end_date: '2025-01-31'} * @returns AxiosPromise */ static getWishlist(title_id: string, params?: Record): AxiosPromise>; /** * Create a new API token for a title. * Returns { full_token: string, token: TitleToken }. */ static createTitleToken(title_id: string, data?: CreateTitleTokenRequest): AxiosPromise>; /** * List all tokens for a title. */ static listTitleTokens(title_id: string): AxiosPromise>; /** * Revoke a specific token by ID. */ static revokeTitleToken(title_id: string, token_id: string): AxiosPromise>; /** * Search for Titles using Meilisearch or fallback based on the query and filters. * * @see https://api.glitch.fun/api/documentation#/Titles/searchTitles * * @param params Object of query params: * - q?: string, filters?: string, * - sort_by?: string, sort_order?: 'asc'|'desc', * - page?: number, per_page?: number */ static search(params?: Record): AxiosPromise>; /** * List game installs for a specific title. */ static listInstalls(title_id: string, params?: Record): AxiosPromise>; /** * View a single game install record. */ static viewInstall(title_id: string, install_id: string, params?: Record): AxiosPromise>; /** * Create or update a game install record. * * `user_install_id` is required. `game_build_id` is optional: send the * exact Glitch build UUID returned as `build_id` by a play session when it * is available, and omit it for external/legacy/unknown builds. Do not * guess a build id. `game_version`, `build_type`, `device_id`, platform, * device type, and operating system may be sent independently. */ static createInstall(title_id: string, data: object, params?: Record): AxiosPromise>; /** * List retention events for a specific title. */ static listRetentions(title_id: string, params?: Record): AxiosPromise>; /** * Get a summary report of retention events for a specific title. */ static retentionSummary(title_id: string, params?: Record): AxiosPromise>; /** Filter/group by platform, device_type, operating_system, game_version, optional game_build_id, or optional device_id. */ static activeRetentions(title_id: string, params?: Record): AxiosPromise>; static retentionAnalysis(title_id: string, params?: Record): AxiosPromise>; /** Returns string dimensions plus labeled `builds` and `devices` options for report filters. */ static distinctDimensions(title_id: string, params?: Record): AxiosPromise>; /** * List sessions for a specific title, with optional filters and pagination. * Returns a paginated list of sessions with start/end times, session_length, * build/version/device snapshots, and user info. `game_build_id` and * `device_id` filters are optional; unattributed/unknown options are exposed * by distinctDimensions. */ static listSessions(title_id: string, params?: Record): AxiosPromise>; /** * Get aggregated average session length data (daily/weekly/monthly) for a title. * Optionally filter/group by platform, device type, OS, version, exact * build id, or device id. */ static sessionsAverage(title_id: string, params?: Record): AxiosPromise>; static sessionsHistogram(title_id: string, params?: Record): AxiosPromise>; /** * Upload a CSV/Excel file containing daily UTM analytics for a specific title. * * @param title_id The UUID of the title * @param file The CSV or Excel file * @param data Optional form fields (if needed) * @param params Optional query parameters * @returns AxiosPromise */ static importUtmAnalytics(title_id: string, file: File | Blob, data?: Record, params?: Record): AxiosPromise>; /** * Retrieve the UTM analytics data for a title (paginated, filterable, sortable). * * GET /titles/{title_id}/utm * * @param title_id The UUID of the title * @param params Optional query params: start_date, end_date, source, device_type, sort_by, etc. * @returns AxiosPromise */ static getUtmAnalytics(title_id: string, params?: Record): AxiosPromise>; /** * Get the web tracking token used for websites. * * GET /titles/{title_id}/webTrackingToken * * @param title_id The UUID of the title * @param params Optional query params: * @returns AxiosPromise */ static getWebTrackingToken(title_id: string, params?: Record): AxiosPromise>; /** * Analyze UTM data with optional group_by (source, campaign, medium, device_type, etc.) * * GET /titles/{title_id}/utm/analysis * * @param title_id The UUID of the title * @param params e.g. ?group_by=source&start_date=YYYY-MM-DD * @returns AxiosPromise */ static analyzeUtmAnalytics(title_id: string, params?: Record): AxiosPromise>; /** * List all chat sessions for a title. */ static chatListSessions(title_id: string, params?: Record): AxiosPromise>; /** * Get a specific chat session and its messages. */ static chatShowSession(title_id: string, session_id: string, params?: Record): AxiosPromise>; /** * Search messages across all sessions of a title. */ static chatListMessages(title_id: string, params?: Record): AxiosPromise>; /** * Update a specific chat message. */ static chatUpdateMessage(title_id: string, message_id: string, data: object): AxiosPromise>; /** * List all purchase events for a specific title. * Matches GET /titles/{title_id}/purchases */ static listPurchases(title_id: string, params?: Record): AxiosPromise>; /** * Retrieve a single purchase record by ID. * Matches GET /titles/{title_id}/purchases/{purchase_id} */ static viewPurchase(title_id: string, purchase_id: string, params?: Record): AxiosPromise>; /** * Create a new purchase record. * Matches POST /titles/{title_id}/purchases */ static createPurchase(title_id: string, data: object, params?: Record): AxiosPromise>; /** * Get a summary of total revenue, grouped by day or purchase_type. * Matches GET /titles/{title_id}/purchases/summary */ static purchaseSummary(title_id: string, params?: Record): AxiosPromise>; /** * Revenue by time (daily, weekly, or monthly). * Matches GET /titles/{title_id}/purchases/reports/time */ static purchaseRevenueByTime(title_id: string, params?: Record): AxiosPromise>; /** * 30-day LTV (Lifetime Value) per install. * Matches GET /titles/{title_id}/purchases/reports/ltv30 */ static purchaseLtv30(title_id: string, params?: Record): AxiosPromise>; /** * Show breakdown of revenue per currency, with optional USD conversion. * Matches GET /titles/{title_id}/purchases/reports/currency */ static purchaseCurrencyBreakdown(title_id: string, params?: Record): AxiosPromise>; /** * Distribution of installs by total revenue, plus a histogram array. * Matches GET /titles/{title_id}/purchases/reports/install-distribution */ static installRevenueDistribution(title_id: string, params?: Record): AxiosPromise>; /** * Stats by item SKU, purchase type, and repeat purchase analysis. * Matches GET /titles/{title_id}/purchases/reports/item-type-stats */ static itemAndPurchaseTypeStats(title_id: string, params?: Record): AxiosPromise>; /** * Bulk import access keys for a title from a CSV or Excel file. * The file must contain 'platform' and 'code' columns. * * @see https://api.glitch.fun/api/documentation#/Titles/importTitleKeys * * @param title_id The UUID of the title. * @param file The CSV or Excel file to upload. * @param data Optional additional form data. * @param params Optional query parameters. * @returns AxiosPromise */ static importKeys(title_id: string, file: File | Blob, data?: Record, params?: Record): AxiosPromise>; /** * Update administrator email preferences for a title. * * @see https://api.glitch.fun/api/documentation#/Titles/updateTitleAdministrator * * @param title_id The id of the title. * @param user_id The id of the user/administrator. * @param data The preference data to update (notify_promotion_schedule_reminder_email, notify_weekly_promotion_performance_email). * * @returns Promise */ static updateAdministrator(title_id: string, user_id: string, data: object, params?: Record): AxiosPromise>; /** * List ad conversion events for a title with filtering */ static listAdConversionEvents(title_id: string, params?: Record): AxiosPromise>; /** * Retry a failed or pending ad conversion event */ static retryAdConversionEvent(title_id: string, event_id: string): AxiosPromise>; /** * List all landing pages for a specific title. * @param title_id The UUID of the title. * @param params Optional query parameters for pagination. */ static listLandingPages(title_id: string, params?: Record): AxiosPromise>; /** * Create a new landing page for a title. * @param title_id The UUID of the title. * @param data The data for the new landing page. */ static createLandingPage(title_id: string, data: object, params?: Record): AxiosPromise>; /** * View a specific landing page by its ID. * @param landing_page_id The UUID of the landing page. */ static viewLandingPage(landing_page_id: string, params?: Record): AxiosPromise>; /** * Update an existing landing page. * @param landing_page_id The UUID of the landing page to update. * @param data The new data for the landing page. */ static updateLandingPage(landing_page_id: string, data: object, params?: Record): AxiosPromise>; /** * Delete a landing page. * @param landing_page_id The UUID of the landing page to delete. */ static deleteLandingPage(landing_page_id: string, params?: Record): AxiosPromise>; /** * Trigger an AI translation for a landing page. * @param landing_page_id The UUID of the landing page. * @param data An object containing the target language code, e.g., { language_code: 'es' }. */ static translateLandingPage(landing_page_id: string, data: { language_code: string; }, params?: Record): AxiosPromise>; /** * Generate or regenerate AI-powered HTML content for a landing page. * @param landing_page_id The UUID of the landing page. * @param data An object containing the prompt, language_code, and privacy_mode. */ static generateLandingPageAiContent(landing_page_id: string, data: { prompt: string; language_code: string; privacy_mode: string; }, params?: Record): AxiosPromise>; /** * Create or update a specific translation for a landing page. * @param landing_page_id The UUID of the landing page. * @param translationData The full translation object to be saved. */ static saveLandingPageTranslation(landing_page_id: string, translationData: object, params?: Record): AxiosPromise>; static cohorts(title_id: string, params?: Record): AxiosPromise>; /** * Get an aggregated report of ad conversion events for charting. */ static getAdConversionEventsReport(title_id: string, params: { start_date: string; end_date: string; group_by: 'platform' | 'status' | 'event_type'; unique_clicks?: boolean; }): AxiosPromise>; /** * Get a geographical distribution report for installs. * @param params e.g., { group_by: 'country_code', start_date: '2025-01-01' } */ static geoReport(title_id: string, params?: Record): AxiosPromise>; /** * List and filter raw game events (telemetry). */ static listEvents(title_id: string, params?: Record): AxiosPromise>; /** * Record a single in-game action. * * Keep step_key and action_key stable. Optional step_label, * step_description, event_label, and event_description fields are * canonical display text for those keys within the title. */ static createEvent(title_id: string, data: object): AxiosPromise>; /** * Record multiple events in one request (Batching). * @param data { events: Array<{game_install_id, step_key, step_label?, step_description?, action_key, event_label?, event_description?, previous_step_key?, metadata?, event_timestamp?}> } */ static bulkCreateEvents(title_id: string, data: { events: object[]; }): AxiosPromise>; /** * Get a summary of actions per step. */ static eventSummary(title_id: string, params?: Record): AxiosPromise>; /** * Get all unique step and action keys used in this title. */ static eventDistinctKeys(title_id: string): AxiosPromise>; /** * List all saved behavioral funnel definitions. */ static listBehavioralFunnels(title_id: string): AxiosPromise>; /** * Create and save a new behavioral funnel definition. * @param data { name: string, description?: string, steps: string[] } */ static createBehavioralFunnel(title_id: string, data: object): AxiosPromise>; /** * Generate the drop-off report for a specific behavioral funnel. * @param params { start_date?: string, end_date?: string } */ static behavioralFunnelReport(title_id: string, funnel_id: string, params?: Record): AxiosPromise>; /** * Delete a saved behavioral funnel definition. */ static deleteBehavioralFunnel(title_id: string, funnel_id: string): AxiosPromise>; /** * Generates a presigned S3 URL for uploading a game build ZIP. */ static getDeploymentUploadUrl(title_id: string): AxiosPromise>; /** * Confirms the upload and starts the automated deployment/extraction process. * @param data { file_path: string, version_string: string, entry_point?: string } */ static confirmDeployment(title_id: string, data: object): AxiosPromise>; /** * Initializes a play session. Handles age-gating and license verification. * Returns the CDN URL for WASM/iFrame or Signaling URL for Pixel Streaming. */ static getPlaySession(title_id: string, data?: object, params?: Record): AxiosPromise>; /** * List all developer payouts for a title. */ static listDeveloperPayouts(title_id: string, params?: Record): AxiosPromise>; /** * View a specific payout record. */ static viewDeveloperPayout(title_id: string, payout_id: string): AxiosPromise>; /** * Get the total earnings and playtime summary for a title. */ static getDeveloperPayoutSummary(title_id: string, params?: Record): AxiosPromise>; /** * The Aegis Handshake: Verify if a player is allowed to play. * * This is used by the game engine (Unity/Unreal) to confirm that the * current session is valid and the user has a proper license. * * @see https://api.glitch.fun/api/documentation#/Aegis%20Security/validateGameSession * * @param title_id The UUID of the game title. * @param install_id The UUID of the specific install/session. * @returns AxiosPromise containing { valid: boolean, user_name: string, license_type: string } */ static validateInstall(title_id: string, install_id: string): AxiosPromise>; /** * List all builds/deployments for a specific title. * @param title_id The UUID of the title. */ static listBuilds(title_id: string, params?: Record): AxiosPromise>; /** * List all cloud save slots for the player associated with this install. */ static listSaves(title_id: string, install_id: string): AxiosPromise>; /** * Upload game progress. The user is identified by the install_id. */ static storeSave(title_id: string, install_id: string, data: object): AxiosPromise>; /** * Resolve a conflict. */ static resolveSaveConflict(title_id: string, install_id: string, save_id: string, conflict_id: string, choice: 'keep_server' | 'use_client'): AxiosPromise>; /** * Toggle a game on the current user's wishlist. * If the game is not wishlisted, it will be added. If it is, it will be removed. * * @param title_id The UUID of the title. * @param data Optional context: { fingerprint_id?: string, short_link_click_id?: string } */ static wishlistToggle(title_id: string, data?: object): AxiosPromise>; /** * Record a self-assigned excitement score (1-5) for a wishlisted game. * * @param title_id The UUID of the title. * @param data { score: number } - Must be between 1 and 5. */ static wishlistUpdateScore(title_id: string, data: { score: number; }): AxiosPromise>; /** * Retrieve the current user's personal wishlist collection. * * @param params Optional pagination parameters (?page=1&per_page=25) */ static myWishlists(params?: Record): AxiosPromise>; /** Look up the current user's wishlist rows for up to 100 title UUIDs. */ static lookupMyWishlists(title_ids: string[]): AxiosPromise>; /** * Get Wishlist Intelligence statistics for a title. * Includes funnel data and predictive revenue forecasting. * Note: Requires Title Administrator permissions. * * @param title_id The UUID of the title. */ static wishlistStats(title_id: string): AxiosPromise>; /** * Get the current user's specific wishlist for a title. * @param title_id The UUID of the title. */ static wishlistMe(title_id: string): AxiosPromise>; /** * Get the consolidated attribution funnel report. * @param title_id The UUID of the title. */ static attributionFunnel(title_id: string, params?: Record): AxiosPromise>; /** * Update the status of a specific deployment build. * @param title_id The UUID of the title. * @param build_id The UUID of the build. * @param status The new status ('ready', 'inactive', or 'failed'). */ static updateBuildStatus(title_id: string, build_id: string, status: string): AxiosPromise>; /** * Proxies a request through the backend to the matchmaker. * This avoids HTTPS -> HTTP mixed content blocks. * * @param title_id The UUID of the game title. * @returns AxiosPromise containing { signallingServer: string } */ static getMatchmakerServer(title_id: string, params?: Record): AxiosPromise>; /** * Send a session heartbeat to keep the dedicated instance claimed. * Called every 30s during active gameplay. */ static matchmakerSessionHeartbeat(title_id: string, data: { sessionId: string; }): AxiosPromise>; /** * Release the session (starts reclaim countdown). * Called on beforeunload or explicit navigation away. */ static matchmakerSessionRelease(title_id: string, data: { sessionId: string; }): AxiosPromise>; /** * Initiates a resumable S3 multipart upload for large files. */ static initiateMultipartUpload(title_id: string, data: object): AxiosPromise>; /** * Get presigned URLs for specific chunk parts. */ static getMultipartUrls(title_id: string, data: object): AxiosPromise>; /** * Stitch together all uploaded chunks to complete the file in S3. */ static completeMultipartUpload(title_id: string, data: object): AxiosPromise>; static listProgressionStats(title_id: string): AxiosPromise>; static createProgressionStat(title_id: string, data: object): AxiosPromise>; static deleteProgressionStat(title_id: string, id: string): AxiosPromise>; static listProgressionAchievements(title_id: string): AxiosPromise>; static createProgressionAchievement(title_id: string, data: object): AxiosPromise>; static listProgressionLeaderboards(title_id: string): AxiosPromise>; static createProgressionLeaderboard(title_id: string, data: object): AxiosPromise>; static listProgressionSeasons(title_id: string): AxiosPromise>; static createProgressionSeason(title_id: string, data: object): AxiosPromise>; /** * Submit a gameplay run. Updates stats and scores using the install_id for privacy. * @param data { idempotency_key: string, payload: { stats: {}, scores: {} } } */ static submitProgressionRun(title_id: string, install_id: string, data: object): AxiosPromise>; static getProgressionPlayerStats(title_id: string, install_id: string): AxiosPromise>; static getProgressionPlayerAchievements(title_id: string, install_id: string): AxiosPromise>; /** Compatibility alias matching the list-style naming used by the frontend. */ static listProgressionPlayerAchievements(title_id: string, install_id: string): AxiosPromise>; /** * View leaderboard rankings. * @param params Optional filters like { around_me: true, install_id: 'uuid', season_id: 'uuid' } */ static getProgressionLeaderboard(title_id: string, api_key: string, params?: Record): AxiosPromise>; static getTechnicalEventSummary(title_id: string, params?: Record): AxiosPromise>; /** * Get games ranked by community activity (active players). * * @param params * - window: number (hours, default 24) * - limit: number (default 10) * - is_nsfw: 1 for adult titles only, 0 for safe titles only */ static getCommunityActivity(params?: { window?: number; limit?: number; is_nsfw?: number | boolean; }): AxiosPromise>; /** * Get games trending on social media. * * @param params * - type: 'influencer' (campaigns) or 'organic' (non-paid) * - window: number (hours, default 168) * - limit: number (default 10) * - is_nsfw: 1 for adult titles only, 0 for safe titles only */ static getSocialTrending(params: { type: 'influencer' | 'organic'; window?: number; limit?: number; is_nsfw?: number | boolean; }): AxiosPromise>; /** * Get a personalized discovery queue of games. * * @param params * - limit: number (default 12) * - device_id: string (highly recommended for guest tracking) * - is_nsfw: 1 for adult titles only, 0 for safe titles only */ static getDiscoveryQueue(params?: { limit?: number; device_id?: string; is_nsfw?: number | boolean; }): AxiosPromise>; /** * Get a curated, playable feed for the Swipe interface. * This route ensures games have builds and images, and supports seeded randomization. * * @see https://api.glitch.fun/api/documentation#/Discovery/getSwipeFeed * * @param params Object of query params: * - seed?: number (For consistent randomization) * - genres?: string[] (Filter by genre names) * - models?: string[] (premium, rental, subscription, free) * - is_nsfw?: 1 | 0 (1 for adult titles only, 0 for safe titles only) * - excluded_ids?: string[] (UUIDs to skip) * - page?: number * - per_page?: number */ static swipeFeed(params?: Record): AxiosPromise>; /** * Get a consolidated report of all earnings for a title, including * playtime payouts, direct premium purchases, and rentals (minus refunds). * * @param title_id The UUID of the title. * @returns AxiosPromise containing the consolidated financial data. */ static getDeveloperPayoutConsolidatedSummary(title_id: string): AxiosPromise>; static wishlistHistory(title_id: string, params?: Record): AxiosPromise>; static wishlistInfluencers(title_id: string, params?: Record): AxiosPromise>; static wishlistAds(title_id: string, params?: Record): AxiosPromise>; static wishlistUtms(title_id: string, params?: Record): AxiosPromise>; static wishlistConversions(title_id: string, params?: Record): AxiosPromise>; static wishlistGeo(title_id: string, params?: Record): AxiosPromise>; static wishlistDevices(title_id: string, params?: Record): AxiosPromise>; /** * List public reviews for a title. * * @param title_id The UUID of the title. * @param params Optional filters: recommendation, language, current_version_only, * verified_only, platform, acquisition_type, complaint, playtime, sort, per_page. */ static listReviews(title_id: string, params?: Record): AxiosPromise>; /** * Get aggregate review scores and structured praise/complaint summaries. */ static reviewSummary(title_id: string, params?: { language?: string; }): AxiosPromise>; /** * Create the current user's review for a title. The backend verifies play/purchase eligibility. */ static createReview(title_id: string, data: CreateGameReviewRequest): AxiosPromise>; /** * View a single review, including revision history when the backend includes it. */ static viewReview(review_id: string, params?: Record): AxiosPromise>; /** * Update the current user's review and preserve a backend revision trail. */ static updateReview(review_id: string, data: UpdateGameReviewRequest): AxiosPromise>; /** * Delete the current user's review, or a title admin's moderated review. */ static deleteReview(review_id: string): AxiosPromise>; /** * Vote on a review as helpful, funny, detailed, or not helpful. */ static voteReview(review_id: string, vote_type: GameReviewVoteType): AxiosPromise>; /** * Report a review for moderation. */ static reportReview(review_id: string, data: { reason: GameReviewReportReason; notes?: string; }): AxiosPromise>; /** * Create or update the title developer's official response to a review. */ static respondToReview(review_id: string, data: { body: string; linked_patch_note_id?: string; issue_marked_fixed?: boolean; }): AxiosPromise>; } export default Titles;