import { AxiosPromise, AxiosProgressEvent, AxiosRequestConfig } from 'axios'; /** * Config * * The configuration class will hold the configuration information used when accessing the * API. */ declare class Config { private static _baseUrl; private static _authToken; private static _community; private static _rootDomain; private static _baseUrlLocked; /** * Set the configuration * * @param baseUrl The url base endpoint of the api * @param authToken The JSON Web Token */ static setConfig(baseUrl: string, authToken: string, lock?: boolean): void; /** * Sets the endpoint for the API * * @param baseUrl The url that connects to the APIs base * @param lock If set to true, will lock the baseUrl so it cannot be changed */ static setBaseUrl(baseUrl: string, lock?: boolean): void; /** * Gets the base URL */ static getBaseUrl(): string; /** * Set the JSON Web Token (JWT) that will be passed to the API * * @param authToken The JWT */ static setAuthToken(authToken: string): void; /** * Gets the auth token */ static getAuthToken(): string; /** * Set the community to be associated with this config through * * @param community The object of the community */ static setCommunity(community: Record): void; /** * Sets the root level domain so data can be accessed across * multiple subdomains * * @param domain The domain ie: example.com */ static setRootDomain(domain: string): void; /** * Gets the root domain */ static getRootDomain(): string; /** * Gets base url */ static get baseUrl(): string; /** * Gets auth token */ static get authToken(): string; /** * Gets the community currently associated */ static get getCommunity(): object; /** * Checks if the base URL is locked */ static isBaseUrlLocked(): boolean; } interface Response { data: T; success: boolean; message?: string; } declare class Auth { /** * Attempts to authenticate a user using their email address. * * @see https://api.glitch.fun/api/documentation#/Authentication%20Route/authLogin * * @param email The email address of the user * @param password The password of the user * * @returns A promise */ static loginWithEmail(email: string, password: string): AxiosPromise>; /** * Attempts to authenticate a user using their username. * * @see https://api.glitch.fun/api/documentation#/Authentication%20Route/authLogin * * @param username The username of the user * @param password The password of the user * * @returns A promise */ static loginWithUsername(username: string, password: string): AxiosPromise>; /** * Attempts to register a user. * * @see https://api.glitch.fun/api/documentation#/Authentication%20Route/oneTimeLoginToken * * @param data The data the user can register with. * * @returns A promise */ static register(data: object): AxiosPromise>; /** * Request an authentication token to faciliate a one time login of an user. * * @see https://api.glitch.fun/api/documentation#/Authentication%20Route/oneTimeLoginToken * * @returns promise */ static oneTimeLogin(token: string): AxiosPromise>; /** * Execute the password reset process using a user's email address. * * @see https://api.glitch.fun/api/documentation#/Authentication%20Route/authForgotPassword * * @param email The email address * * @returns promise */ static forgotPasswordWithEmail(email: string): AxiosPromise>; /** * Resets the users password after the forgot password has been executed. * * @see https://api.glitch.fun/api/documentation#/Authentication%20Route/authResetPassword * * @param data The parameters required to reset the password. * * @returns promise */ static resetPassword(data: object): AxiosPromise>; } declare class AccessKeys { /** * List all access keys for a given title. * * @see https://api.glitch.fun/api/documentation#/Access%20Keys/get_titles__title_id__keys * * @param title_id The UUID of the title. * @param params Optional query parameters for pagination. * @returns promise */ static list(title_id: string, params?: Record): AxiosPromise>; /** * Bulk create access keys from a string of codes. * * @see https://api.glitch.fun/api/documentation#/Access%20Keys/post_titles__title_id__keys * * @param title_id The UUID of the title. * @param data The platform and codes to upload. * @param data.platform The platform for the keys (e.g., 'steam'). * @param data.codes A string of codes separated by newlines, commas, or spaces. * @returns Promise */ static store(title_id: string, data: { platform: string; codes: string; }, params?: Record): AxiosPromise>; /** * Deletes an unassigned access key. * * @see https://api.glitch.fun/api/documentation#/Access%20Keys/delete_keys__key_id_ * * @param key_id The UUID of the access key to delete. * @returns promise */ static delete(key_id: string, params?: Record): AxiosPromise>; /** * Emails the assigned key to the influencer. * * @param key_id The UUID of the access key. * @returns promise */ static sendEmail(key_id: string): AxiosPromise>; } declare class Competitions { /** * List all the competitions * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/resourceList * * @returns promise */ static list(params?: Record): AxiosPromise>; /** * Create a new competition * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/newResourceStorage * * @param data The date to be passed when creating a competiton. * * @returns Promise */ static create(data: object, params?: Record): AxiosPromise>; /** * Update a competition * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/updateStorage * * @param competition_id The id of the competition to update. * @param data The data to update. * * @returns promise */ static update(competition_id: string, data: object, params?: Record): AxiosPromise>; /** * Retrieve the information for a single competition. * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/showStorage * * @param competition_id The id fo the competition to retrieve. * * @returns promise */ static view(competition_id: string, params?: Record): AxiosPromise>; /** * Deletes a competition. * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/destoryStorage * * @param competition_id The id of the competition to delete. * @returns promise */ static delete(competition_id: string, params?: Record): AxiosPromise>; /** * Add a team * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/addTeam * * @param competition_id * @param team_id * @returns promise */ static addTeam(competition_id: string, team_id: string, params?: Record): AxiosPromise>; /** * Adds participant * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/addParticipant * * @param competition_id * @param user_id * @returns promise */ static addParticipant(competition_id: string, user_id: string, params?: Record): AxiosPromise>; /** * Register a team * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/registerTeam * * @param competition_id * @param team_id * @returns promise */ static registerTeam(competition_id: string, team_id: string, params?: Record): AxiosPromise>; /** * Register a user * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/registerParticipant * * @param competition_id * @returns promise */ static registerUser(competition_id: string, params?: Record): AxiosPromise>; /** * Sync rounds * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/syncRounds * * @param competition_id * @param number_of_competitors * @param competitors_per_bracket * @returns promise */ static syncRounds(competition_id: string, params?: Record): AxiosPromise>; /** * auto generate team brackets * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/autoGenerateTeamBrackets * * @param competition_id * @param round_id * @returns promise */ static autoGenerate(competition_id: string, round_id: number, params?: Record): AxiosPromise>; /** * auto generate user brackets * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/autoGenerateUserBrackets * * @param competition_id * @returns promise */ static autoGenerateUserBrackets(competition_id: string, params?: Record): AxiosPromise>; /** * Updates the main image for the event using a File object. * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/uploadMainImage * * @param file The file object to upload. * @param data Any additional data to pass along to the upload. * * @returns promise */ static uploadCompetitionMainImageFile(competition_id: string, file: File, data?: object, params?: Record): AxiosPromise>; /** * Updates the main image for the competition using a Blob. * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/uploadMainImage * * @param blob The blob to upload. * @param data Any additional data to pass along to the upload * * @returns promise */ static uploadCompetitionMainImageBlob(competition_id: string, blob: Blob, data?: object, params?: Record): AxiosPromise>; /** * Updates the banner image for the competition using a File object. * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/uploadBannerImage * * @param file The file object to upload. * @param data Any additional data to pass along to the upload. * * @returns promise */ static uploadCompetitionBannerImageFile(competition_id: string, file: File, data?: object, params?: Record): AxiosPromise>; /** * Updates the banner image for the competition using a Blob. * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/uploadBannerImage * * @param blob The blob to upload. * @param data Any additional data to pass along to the upload * * @returns promise */ static uploadCompetitionsBannerImageBlob(competition_id: string, blob: Blob, data?: object, params?: Record): AxiosPromise>; /** * Invites * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/competitionUserInviteList * * @param competition_id * @returns promise */ static invites(competition_id: string, params?: Record): AxiosPromise>; /** * Sends invite * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/competitionSendInvite * * @param competition_id * @returns promise */ static sendInvite(competition_id: string): AxiosPromise>; /** * Accept invite * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/competitionAcceptInvite * * @param competition_id * @param token * @returns promise */ static acceptInvite(competition_id: string, token: string): AxiosPromise>; /** * Round brackets * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/resourceRoundBracketList1 * * @param competition_id * @param round_id * @returns promise */ static brackets(competition_id: string, round_id: number, params?: Record): AxiosPromise>; /** * Store round brackets * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/resourceRoundBracketStorage * * @param competition_id * @param round_id * @returns promise */ static createBracket(competition_id: string, round_id: number, data?: object, params?: Record): AxiosPromise>; /** * Show round bracket * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/resourceRoundBracketShow * * @param competition_id * @param round_id * @param bracket_id * @returns promise */ static showBracket(competition_id: string, round_id: number, bracket_id: number, params?: Record): AxiosPromise>; /** * Update bracket * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/updateRoundBracket * * @param competition_id * @param round_id * @param bracket_id * @returns promise */ static updateBracket(competition_id: string, round_id: number, bracket_id: number, data?: object, params?: Record): AxiosPromise>; /** * Delete bracket * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/destoryRoundBracket * * @param competition_id * @param round_id * @param bracket_id * @returns promise */ static destroyBracket(competition_id: string, round_id: number, bracket_id: number): AxiosPromise>; /** * List round * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/resourceRoundList * * @param competition_id * @returns promise */ static rounds(competition_id: string, params?: Record): AxiosPromise>; /** * Create a new round for competition * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/resourceRoundStorage * * @param competition_id * @returns promise */ static createRound(competition_id: string, data?: object, params?: Record): AxiosPromise>; /** * Retrieve the information for a single round. * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/resourceRoundShow * * @param competition_id * @param round_id * @returns promise */ static showRound(competition_id: string, round_id: number, params?: Record): AxiosPromise>; /** * Updating resource in storage with new information. * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/updateRound * * @param competition_id * @param round_id * @returns promise */ static updateRound(competition_id: string, round_id: number, data?: object, params?: Record): AxiosPromise>; /** * Deletes the round for the competition. * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/destoryRound * * @param competition_id * @param round_id * @returns promise */ static destroyRound(competition_id: string, round_id: number): AxiosPromise>; /** * Retrieve a list of teams associated with the competition. * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/resourceCompetitionTeamList * * @param competition_id * @returns promise */ static team(competition_id: string, params?: Record): AxiosPromise>; /** * Associate a new team with the competition. * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/resourceCompetitionTeamStorage * * @param competition_id * @returns promise */ static createCompetitionTeam(competition_id: string, data?: object, params?: Record): AxiosPromise>; /** * Display the contents of a single team associated with the competition. * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/resourceTeamShow * * @param competition_id The id of the competition * @param team_id The id of the team * @returns promise */ static showTeam(competition_id: string, team_id: string, params?: Record): AxiosPromise>; /** * Update the team information associated with the competition. * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/updateTeam * * @param competition_id * @param team_id * @returns promise */ static updateTeam(competition_id: string, team_id: string, data?: object): AxiosPromise>; /** * Removes the team from the competition. * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/destoryTeam * * @param competition_id * @param team_id * @returns promise */ static destroyTeam(competition_id: string, team_id: string, params?: Record): AxiosPromise>; /** * List all the users associated with a competition. * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/competitionUserList * * @param competition_id * @returns promise */ static users(competition_id: string, params?: Record): AxiosPromise>; /** * Associate a new users with the competition. * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/createCompetitionUser * * @param competition_id * @returns promise */ static createCompetitionUser(competition_id: string, data?: object): AxiosPromise>; /** * Show a single user by its ID. * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/showCompetitionUser * * @param competition_id * @param user_id * @returns promise */ static showCompetitionUser(competition_id: string, user_id: string, params?: Record): AxiosPromise>; /** * Update the user associated with competition. * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/updateCompetitionUser * * @param competition_id * @param user_id * @returns promise */ static updateCompetitionUser(competition_id: string, user_id: string, data?: object, params?: Record): AxiosPromise>; /** * Remove the associated user from the competition. * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/removeCompetitionUser * * @param competition_id * @param user_id * @returns promise */ static destroyCompetitionUser(competition_id: string, user_id: string, params?: Record): AxiosPromise>; /** * List all the venues associated with a competition. * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/venueList * * @param competition_id * @returns promise */ static venues(competition_id: string, params?: Record): AxiosPromise>; /** * Creating a new venue. * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/createVenue * * @param competition_id * @returns promise */ static createVenue(competition_id: string, data: object, params?: Record): AxiosPromise>; /** * Show a single venue by its ID. * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/showVenue * * @param competition_id * @param venue_id * @returns promise */ static showVenue(competition_id: string, venue_id: string, params?: Record): AxiosPromise>; /** * Update the venue. * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/updateVenue * * @param competition_id * @param venue_id * @returns promise */ static updateVenue(competition_id: string, venue_id: string, data: object, params?: Record): AxiosPromise>; /** * Deletes the venue from the competition. * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/removeCompetitionVenue * * @param competition_id * @param venue_id * @returns promise */ static destroyVenue(competition_id: string, venue_id: string, params?: Record): AxiosPromise>; /** * Updates the main image for the venue using a File object. * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/uploadVenueMainImage * * @param file The file object to upload. * @param data Any additional data to pass along to the upload. * * @returns promise */ static uploadVenueMainImageFile(competition_id: string, file: File, data?: object, params?: Record): AxiosPromise>; /** * Updates the main image for the venue using a Blob. * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/uploadVenueMainImage * * @param blob The blob to upload. * @param data Any additional data to pass along to the upload * * @returns promise */ static uploadVenueMainImageBlob(competition_id: string, blob: Blob, data?: object, params?: Record): AxiosPromise>; /** * Get a leaderboard by a users points. * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/competitionUserList * * @param competition_id * @returns promise */ static userPointsLeaderboard(competition_id: string, params?: Record): AxiosPromise>; /** * Get a leaderboard by a users wins. * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/competitionLeaderBoardUserWins * * @param competition_id * @returns promise */ static userWinsLeaderboard(competition_id: string, params?: Record): AxiosPromise>; /** * Get a leaderboard by a teams points. * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/competitionUserList * * @param competition_id * @returns promise */ static teamPointsLeaderboard(competition_id: string, params?: Record): AxiosPromise>; /** * Get a leaderboard by a teams wins. * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/competitionLeaderBoardTeamWins * * @param competition_id * @returns promise */ static teamWinsLeaderboard(competition_id: string, params?: Record): AxiosPromise>; /** * Get all leaderboards. * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/competitionLeaderBoardTeamPoints * * @param competition_id * @returns promise */ static allLeaderboards(competition_id: string, params?: Record): AxiosPromise>; /** * Gets all the information about a competition for the current user. * * @see https://api.glitch.fun/api/documentation#/Competitions%20Route/competitionLeaderboardsAll * * @param competition_id * @returns promise */ static me(competition_id: string, params?: Record): AxiosPromise>; } declare class Ads { /** * List Ad Campaigns. * * Example usage: * Ads.listCampaigns({ community: 'uuid-of-community', platform: 'tiktok' }) * * @param params Query parameters (e.g. community, platform, advertiser_id, etc.) * @returns A paginated list of AdCampaign resources */ static listCampaigns(params?: Record): AxiosPromise>; /** * Create a new Ad Campaign. * * @param data The Ad Campaign payload (JSON) to create * @param params Optional query parameters * @returns The newly created AdCampaign resource */ static createCampaign(data?: object, params?: Record): AxiosPromise>; /** * Retrieve a single Ad Campaign by ID. * * @param campaign_id The UUID of the campaign to fetch * @param params Optional query parameters * @returns The requested AdCampaign resource */ static viewCampaign(campaign_id: string, params?: Record): AxiosPromise>; /** * Update an existing Ad Campaign by ID. * * @param campaign_id The UUID of the campaign to update * @param data The partial or full updated AdCampaign payload * @param params Optional query parameters * @returns The updated AdCampaign resource */ static updateCampaign(campaign_id: string, data?: object, params?: Record): AxiosPromise>; /** * Delete an Ad Campaign by ID. * * @param campaign_id The UUID of the campaign to delete * @param params Optional query parameters * @returns A 204 No Content response on success */ static deleteCampaign(campaign_id: string, params?: Record): AxiosPromise>; /** * List Ad Groups (ad sets) for a specific campaign. * * Example usage: * Ads.listGroups('some-campaign-uuid', { promotion_type: 'WEBSITE' }) * * @param campaign_id The UUID of the parent Ad Campaign * @param params Optional query parameters (e.g. promotion_type, operation_status, etc.) * @returns A paginated list of AdGroup resources */ static listGroups(campaign_id: string, params?: Record): AxiosPromise>; /** * Create a new Ad Group (ad set) under a specific campaign. * * @param campaign_id The UUID of the parent Ad Campaign * @param data The AdGroup creation payload * @param params Optional query parameters * @returns The newly created AdGroup resource */ static createGroup(campaign_id: string, data?: object, params?: Record): AxiosPromise>; /** * Retrieve a single Ad Group by ID, under a specific campaign. * * @param campaign_id The UUID of the parent Ad Campaign * @param group_id The UUID of the AdGroup to fetch * @param params Optional query parameters * @returns The requested AdGroup resource */ static viewGroup(campaign_id: string, group_id: string, params?: Record): AxiosPromise>; /** * Update an Ad Group (ad set) by ID. * * @param campaign_id The UUID of the parent Ad Campaign * @param group_id The UUID of the AdGroup to update * @param data Updated fields for the AdGroup * @param params Optional query parameters * @returns The updated AdGroup resource */ static updateGroup(campaign_id: string, group_id: string, data?: object, params?: Record): AxiosPromise>; /** * Delete an Ad Group (ad set) by ID, under a specific campaign. * * @param campaign_id The UUID of the parent Ad Campaign * @param group_id The UUID of the AdGroup to delete * @param params Optional query parameters * @returns A 204 No Content response on success */ static deleteGroup(campaign_id: string, group_id: string, params?: Record): AxiosPromise>; /** * List Ads (creatives). * * Supports filtering by ad_group_id, social_media_post_id, operation_status, etc. * * @param params Optional query parameters for filtering/sorting * @returns A paginated list of Ad resources */ static listAds(params?: Record): AxiosPromise>; /** * Create a new Ad (creative). * * @param data The Ad creation payload * @param params Optional query parameters * @returns The newly created Ad resource */ static createAd(data?: object, params?: Record): AxiosPromise>; /** * Retrieve a single Ad by ID. * * @param ad_id The UUID of the Ad to fetch * @param params Optional query parameters * @returns The requested Ad resource */ static viewAd(ad_id: string, params?: Record): AxiosPromise>; /** * Update an existing Ad by ID. * * @param ad_id The UUID of the Ad to update * @param data The partial or full Ad payload * @param params Optional query parameters * @returns The updated Ad resource */ static updateAd(ad_id: string, data?: object, params?: Record): AxiosPromise>; /** * Delete an Ad by ID. * * @param ad_id The UUID of the Ad to delete * @param params Optional query parameters * @returns A 204 No Content response on success */ static deleteAd(ad_id: string, params?: Record): AxiosPromise>; /** * List triggers defined for a given Ad Group. * * @param campaign_id The UUID of the parent Ad Campaign * @param group_id The UUID of the Ad Group * @param params Optional query parameters (pagination, etc.) * @returns A paginated list of AdGroupTrigger resources */ static listTriggers(campaign_id: string, group_id: string, params?: Record): AxiosPromise>; /** * Create a new Ad Group Trigger. * * @param campaign_id The UUID of the parent Ad Campaign * @param group_id The UUID of the Ad Group * @param data The trigger creation payload * @param params Optional query parameters * @returns The newly created AdGroupTrigger resource */ static createTrigger(campaign_id: string, group_id: string, data?: object, params?: Record): AxiosPromise>; /** * Retrieve a single Ad Group Trigger by ID. * * @param campaign_id The UUID of the parent Ad Campaign * @param group_id The UUID of the Ad Group * @param trigger_id The UUID of the trigger * @param params Optional query parameters * @returns The requested AdGroupTrigger resource */ static viewTrigger(campaign_id: string, group_id: string, trigger_id: string, params?: Record): AxiosPromise>; /** * Update an existing Ad Group Trigger by ID. * * @param campaign_id The UUID of the parent Ad Campaign * @param group_id The UUID of the Ad Group * @param trigger_id The UUID of the trigger to update * @param data Updated trigger fields * @param params Optional query parameters * @returns The updated AdGroupTrigger resource */ static updateTrigger(campaign_id: string, group_id: string, trigger_id: string, data?: object, params?: Record): AxiosPromise>; /** * Delete an Ad Group Trigger by ID. * * @param campaign_id The UUID of the parent Ad Campaign * @param group_id The UUID of the Ad Group * @param trigger_id The UUID of the trigger * @param params Optional query parameters * @returns A 204 No Content response on success */ static deleteTrigger(campaign_id: string, group_id: string, trigger_id: string, params?: Record): AxiosPromise>; /** * List platform-level businesses for the given campaign ID, * as defined by /ads/campaigns/{id}/businesses on the backend. * * Typically relevant for Reddit (list businesses), or might return a * "not supported" message for Meta/TikTok. * * @param campaign_id The UUID of the Ad Campaign * @param params Optional query parameters, e.g. page.size, etc. * @returns A response object with data (business list or messages) */ static listCampaignBusinesses(campaign_id: string, params?: Record): AxiosPromise>; /** * List Ad Accounts for the given campaign ID, * as defined by /ads/campaigns/{id}/ad_accounts on the backend. * * E.g. for Reddit, you can pass ?business_id= to get business-level ad accounts, * or for Twitter, it might just return a user’s ad accounts, etc. * * @param campaign_id The UUID of the Ad Campaign * @param params Optional query parameters, e.g. business_id, page.size, etc. * @returns A response object with data (ad account list) */ static listCampaignAdAccounts(campaign_id: string, params?: Record): AxiosPromise>; /** * List funding instruments for the given campaign ID, * as defined by /ads/campaigns/{id}/funding_instruments on the backend. * * For Twitter, pass ?account_id=... * For Reddit, pass ?ad_account_id=... or ?business_id=... * * @param campaign_id The UUID of the Ad Campaign * @param params Optional query parameters * @returns A response object with data (funding instruments) */ static listCampaignFundingInstruments(campaign_id: string, params?: Record): AxiosPromise>; /** * GET /ads/reddit/targeting/carriers * * Example usage: * Ads.listRedditCarriers({ scheduler_id: 'uuid-of-scheduler', 'page.size': 50 }) */ static listRedditCarriers(params?: Record): AxiosPromise>; /** * GET /ads/reddit/targeting/communities?names=sub1,sub2 */ static listRedditCommunities(params?: Record): AxiosPromise>; /** * GET /ads/reddit/targeting/communities/search?query=xyz */ static searchRedditCommunities(params?: Record): AxiosPromise>; /** * GET /ads/reddit/targeting/devices */ static listRedditDevices(params?: Record): AxiosPromise>; /** * GET /ads/reddit/targeting/geolocations */ static listRedditGeolocations(params?: Record): AxiosPromise>; /** * GET /ads/reddit/targeting/interests */ static listRedditInterests(params?: Record): AxiosPromise>; /** * GET /ads/reddit/targeting/third_party_audiences */ static listRedditThirdPartyAudiences(params?: Record): AxiosPromise>; /** * Sync an Ad Campaign with the remote platform * * @param campaign_id The UUID of the campaign to sync * @param params Optional query parameters * @returns The synced AdCampaign resource */ static syncCampaign(campaign_id: string, params?: Record): AxiosPromise>; /** * Sync an Ad Group with the remote platform * * @param campaign_id The UUID of the parent campaign * @param group_id The UUID of the ad group to sync * @param params Optional query parameters * @returns The synced AdGroup resource */ static syncGroup(campaign_id: string, group_id: string, params?: Record): AxiosPromise>; static listRedditAdPosts(params?: Record): AxiosPromise>; /** Create a Reddit ad-style social-media post */ static createRedditAdPost(data?: object, params?: Record): AxiosPromise>; /** Retrieve a single Reddit ad-style social-media post */ static viewRedditAdPost(post_id: string, params?: Record): AxiosPromise>; /** Update a Reddit ad-style social-media post */ static updateRedditAdPost(post_id: string, data?: object, params?: Record): AxiosPromise>; static listTwitterAdPosts(params?: Record): AxiosPromise>; static createTwitterAdPost(data?: object, params?: Record): AxiosPromise>; static viewTwitterAdPost(post_id: string, params?: Record): AxiosPromise>; static updateTwitterAdPost(post_id: string, data?: object, params?: Record): AxiosPromise>; static deleteTwitterAdPost(post_id: string, params?: Record): AxiosPromise>; static listFacebookAdPosts(params?: Record): AxiosPromise>; static createFacebookAdPost(data?: object, params?: Record): AxiosPromise>; static viewFacebookAdPost(post_id: string, params?: Record): AxiosPromise>; static updateFacebookAdPost(post_id: string, data?: object, params?: Record): AxiosPromise>; static deleteFacebookAdPost(post_id: string, params?: Record): AxiosPromise>; static tiktokUploadImageFile(file: File, data?: object, params?: Record, onUploadProgress?: (progressEvent: AxiosProgressEvent) => void): AxiosPromise>; static tiktokUploadVideoFile(file: File, data?: object, params?: Record, onUploadProgress?: (progressEvent: AxiosProgressEvent) => void): AxiosPromise>; static tiktokUploadMusicFile(file: File, data?: object, params?: Record, onUploadProgress?: (progressEvent: AxiosProgressEvent) => void): AxiosPromise>; static tiktokUploadImageBlob(blob: Blob, data?: object, params?: Record, onUploadProgress?: (progressEvent: AxiosProgressEvent) => void): AxiosPromise>; static tiktokUploadVideoBlob(blob: Blob, data?: object, params?: Record, onUploadProgress?: (progressEvent: AxiosProgressEvent) => void): AxiosPromise>; static tiktokUploadMusicBlob(blob: Blob, data?: object, params?: Record, onUploadProgress?: (progressEvent: AxiosProgressEvent) => void): AxiosPromise>; static tiktokGetMediaInfo(params: Record): AxiosPromise>; /** * Sync an Ad with the remote platform. * * @param ad_id UUID of the ad to sync * @param params Optional query parameters * @returns The synced Ad resource */ static syncAd(ad_id: string, params?: Record): AxiosPromise>; /** * POST /ads/facebook/targeting/search */ static facebookTargetingSearch(data: Record, params?: Record): AxiosPromise>; /** * GET /ads/facebook/targeting/geo_search */ static facebookGeoSearch(params: Record): AxiosPromise>; /** * GET /ads/facebook/targeting/option_status */ static facebookTargetingOptionStatus(params: Record): AxiosPromise>; /** * POST /ads/facebook/targeting/suggestions */ static facebookTargetingSuggestions(data: Record, params?: Record): AxiosPromise>; /** * GET /ads/facebook/targeting/browse */ static facebookTargetingBrowse(params: Record): AxiosPromise>; /** * POST /ads/facebook/targeting/validation */ static facebookTargetingValidation(data: Record, params?: Record): AxiosPromise>; /** * GET /ads/facebook/targeting/delivery_estimate */ static facebookDeliveryEstimate(params: Record): AxiosPromise>; static tiktokTargetingSearch(data: object, params?: Record): AxiosPromise>; static tiktokContextualTags(params?: Record): AxiosPromise>; static tiktokRecommendHashtags(params?: Record): AxiosPromise>; static tiktokListCarriers(params?: Record): AxiosPromise>; static tiktokListInterestCategories(params?: Record): AxiosPromise>; static tiktokListActionCategories(params?: Record): AxiosPromise>; static tiktokListContentExclusions(params?: Record): AxiosPromise>; static tiktokListRegions(params?: Record): AxiosPromise>; static tiktokGetTargetingInfo(data: object, params?: Record): AxiosPromise>; static tiktokListLanguages(advertiser_id: string, params?: Record): AxiosPromise>; static tiktokRecommendInterestKeywords(params: Record): AxiosPromise>; /** * GET /ads/tiktok/targeting/hashtag_info */ static tiktokHashtagInfo(params: Record): AxiosPromise>; /** * GET /ads/tiktok/targeting/contextual_tag_info */ static tiktokContextualTagInfo(params: Record): AxiosPromise>; /** * GET /ads/tiktok/targeting/content_exclusion_info */ static tiktokContentExclusionInfo(params: Record): AxiosPromise>; static listTwitterTargetingCriteria(params?: Record): AxiosPromise>; static getTwitterTargetingCriterion(criterion_id: string, params?: Record): AxiosPromise>; static createTwitterTargetingCriterion(data?: object, params?: Record): AxiosPromise>; static deleteTwitterTargetingCriterion(criterion_id: string, params?: Record): AxiosPromise>; static twitterBatchTargetingCriteria(data: object[], params?: Record): AxiosPromise>; static lookupTwitterTargeting(resource: string, params?: Record): AxiosPromise>; /** * Look up Twitter location targeting options. * * Kept as a named convenience method for frontend compatibility while the * generic lookupTwitterTargeting method remains the canonical route helper. */ static listTwitterTargetingLocations(params?: Record): AxiosPromise>; static twitterTargetingSuggestions(params: Record): AxiosPromise>; /** * Deep-sync a campaign tree (campaign → groups → ads) with its remote platform. * * @param campaign_id UUID of the campaign to sync * @param params Optional query params * @returns Fully-hydrated AdCampaign resource */ static syncCampaignTree(campaign_id: string, params?: Record): AxiosPromise>; /** * Deep-sync all the campaigns for a scheduler. * * @param scheduler_id UUID of the campaign to sync * @param params Optional query params * @returns Fully-hydrated AdCampaign resource */ static syncSchedulerCampaigns(scheduler_id: string, params?: Record): AxiosPromise>; /** * Get campaign performance summary. */ static getPerformanceSummary(params?: Record): AxiosPromise>; /** * Get spend and delivery metrics over time. */ static getSpendDeliveryReport(params: { start_date: string; end_date: string; group_by?: 'day' | 'week' | 'month'; community_id?: string; platform?: string; }): AxiosPromise>; /** * Compare performance across platforms. */ static getPlatformComparisonReport(params?: { start_date?: string; end_date?: string; community_id?: string; }): AxiosPromise>; /** * Get performance metrics for individual ad creatives. */ static getCreativePerformanceReport(params?: { community_id?: string; platform?: string; start_date?: string; end_date?: string; limit?: number; sort?: 'spend' | 'impressions' | 'clicks' | 'ctr' | 'cpm' | 'cpc'; order?: 'asc' | 'desc'; }): AxiosPromise>; /** * Get time-based performance metrics by hour and day of week. */ static getTimePerformanceReport(params: { start_date: string; end_date: string; community_id?: string; platform?: string; }): AxiosPromise>; /** * Get detailed paid campaign performance rows for tables and exports. */ static getDetailedBreakdownReport(params: { start_date: string; end_date: string; community_id?: string; scheduler_id?: string; platform?: string; campaign_id?: string; ad_group_id?: string; ad_id?: string; }): AxiosPromise>; /** * GET /ads/google/targeting/geo/suggest */ static listGoogleGeoSuggestions(params: Record): AxiosPromise>; /** * POST /ads/google/targeting/campaigns/{customer_id}/{campaign_id}/locations */ static addGoogleLocationTargets(customer_id: number, campaign_id: number, data: object): AxiosPromise>; /** * GET /ads/google/targeting/campaigns/{customer_id}/{campaign_id}/locations */ static getGoogleLocationTargets(customer_id: number, campaign_id: number, params: Record): AxiosPromise>; /** * DELETE /ads/google/targeting/campaigns/{customer_id}/{campaign_id}/locations */ static removeGoogleLocationTargets(customer_id: number, campaign_id: number, data: object): AxiosPromise>; /** * POST /ads/google/targeting/campaigns/{customer_id}/{campaign_id}/proximity */ static addGoogleProximityTarget(customer_id: number, campaign_id: number, data: object): AxiosPromise>; /** * PUT /ads/google/targeting/{resource_type}/{customer_id}/{resource_id}/settings */ static updateGoogleTargetingSettings(resource_type: 'campaign' | 'ad_group', customer_id: number, resource_id: number, data: object): AxiosPromise>; /** * GET /ads/google/targeting/{resource_type}/{customer_id}/{resource_id}/settings */ static getGoogleTargetingSettings(resource_type: 'campaign' | 'ad_group', customer_id: number, resource_id: number, params: Record): AxiosPromise>; /** GET /ads/posts/google */ static listGoogleAdPosts(params?: Record): AxiosPromise>; /** POST /ads/posts/google */ static createGoogleAdPost(data?: object, params?: Record): AxiosPromise>; /** PUT /ads/posts/google/{post_id} */ static updateGoogleAdPost(post_id: string, data?: object, params?: Record): AxiosPromise>; /** DELETE /ads/posts/google/{post_id} */ static deleteGoogleAdPost(post_id: string, params?: Record): AxiosPromise>; /** POST /ads/posts/google/{post_id}/pause */ static pauseGoogleAdPost(post_id: string, params?: Record): AxiosPromise>; /** POST /ads/posts/google/{post_id}/enable */ static enableGoogleAdPost(post_id: string, params?: Record): AxiosPromise>; /** * Creates a new Google Ads client account under a specified manager account. * Corresponds to POST /ads/google/accounts/create * * @param data The creation payload. * @param data.scheduler_id The UUID of the scheduler with auth tokens. * @param data.manager_customer_id The 10-digit MCC ID. * @param data.descriptive_name The name for the new account. * @param data.currency_code ISO 4217 currency code. * @param data.time_zone Time zone identifier (e.g., 'America/New_York'). * @returns The newly created Google Ads account details. */ static createGoogleAccount(data: { scheduler_id: string; manager_customer_id: string; descriptive_name: string; currency_code: string; time_zone: string; }): AxiosPromise>; /** * Submit a SKAN attribution postback to the public Apple app attribution endpoint. * This mirrors POST /.well-known/appattribution/report-attribution. */ static reportSkanAttributionPostback(data: { "jws-string"?: string; jws?: string; [key: string]: any; }, params?: Record): AxiosPromise>; } declare class Communities { /** * List all the communities. * * @see https://api.glitch.fun/api/documentation#/Community%20Route/resourceCommunityList * * @returns promise */ static list(params?: Record): AxiosPromise>; /** * Create a new community. * * @see https://api.glitch.fun/api/documentation#/Community%20Route/newCommunityResourceStorage * * @param data The data to be passed when creating a community. * * @returns Promise */ static create(data: object, params?: Record): AxiosPromise>; /** * Update a community. * * @see https://api.glitch.fun/api/documentation#/Community%20Route/updateCommunityStorage * * @param community_id The id of the community to update. * @param data The data to update. * * @returns promise */ static update(community_id: string, data: object, params?: Record): AxiosPromise>; /** * Retrieve the information for a single community. * * @see https://api.glitch.fun/api/documentation#/Community%20Route/showCommunityStorage * * @param community_id The id fo the community to retrieve. * * @returns promise */ static view(community_id: string, params?: Record): AxiosPromise>; /** * Deletes a community. * * @see https://api.glitch.fun/api/documentation#/Community%20Route/destoryCommunityStorage * * @param community_id The id of the community to delete. * @returns promise */ static delete(community_id: string, params?: Record): AxiosPromise>; /** * Retrieve the site-admin grant state for the customer-facing game market * research product. */ static getMarketResearchAccess(community_id: string, params?: Record): AxiosPromise>; /** * Enable or disable game market research access for a business account. */ static updateMarketResearchAccess(community_id: string, data: { enabled: boolean; notes?: string; }, params?: Record): AxiosPromise>; /** * Updates the main image for the community using a File object. * * @see https://api.glitch.fun/api/documentation#/Community%20Route/uploadLogoCommunityImage * * @param file The file object to upload. * @param data Any additional data to pass along to the upload. * * @returns promise */ static uploadLogoFile(community_id: string, file: File, data?: object, params?: Record): AxiosPromise>; /** * Updates the main image for the community using a Blob. * * @see https://api.glitch.fun/api/documentation#/Community%20Route/uploadLogoCommunityImage * * @param blob The blob to upload. * @param data Any additional data to pass along to the upload * * @returns promise */ static uploadLogoBlob(community_id: string, blob: Blob, data?: object, params?: Record): AxiosPromise>; /** * Updates the banner image for the community using a File object. * * @see https://api.glitch.fun/api/documentation#/Community%20Route/uploadBannerCommunityImage * * @param file The file object to upload. * @param data Any additional data to pass along to the upload. * * @returns promise */ static uploadBannerImageFile(community_id: string, file: File, data?: object, params?: Record): AxiosPromise>; /** * Updates the banner image for the community using a Blob. * * @see https://api.glitch.fun/api/documentation#/Community%20Route/uploadBannerCommunityImage * * @param blob The blob to upload. * @param data Any additional data to pass along to the upload * * @returns promise */ static uploadBannerImageBlob(community_id: string, blob: Blob, data?: object, params?: Record): AxiosPromise>; /** * Updates the banner image for the community using a File object. * * @see https://api.glitch.fun/api/documentation#/Community%20Route/uploadBannerCommunityImage * * @param file The file object to upload. * @param data Any additional data to pass along to the upload. * * @returns promise */ static uploadVideoLogoFile(community_id: string, file: File, data?: object, params?: Record): AxiosPromise>; /** * Updates the banner image for the community using a Blob. * * @see https://api.glitch.fun/api/documentation#/Community%20Route/uploadBannerCommunityImage * * @param blob The blob to upload. * @param data Any additional data to pass along to the upload * * @returns promise */ static uploadVideoLogoBlob(community_id: string, blob: Blob, data?: object, params?: Record): AxiosPromise>; /** * List the invites that have been sent for the community to users. * * @see https://api.glitch.fun/api/documentation#/communitys%20Route/communitysUserInviteList * * @param community_id The id of the community * * @returns promise */ static listInvites(community_id: string, params?: Record): AxiosPromise>; /** * Send an invitation to a user to join the community. * * @see https://api.glitch.fun/api/documentation#/communitys%20Route/communitySendInvite * * @param community_id The id of the community. * @param data The data that will be passed into sending an invite. * * @returns promise */ static sendInvite(community_id: string, data?: object, params?: Record): AxiosPromise>; /** * Accept an invite to a community. The JSON Web Token (JWT) must be related to the token. * * @see https://api.glitch.fun/api/documentation#/communitys%20Route/communityAcceptInvite * * @param community_id The id of the community * @param token The token required to accept the user. * * @returns promise */ static acceptInvite(community_id: string, token: string, params?: Record): AxiosPromise>; /** * Retrieves a user's invite that have been sent. * * @see https://api.glitch.fun/api/documentation#/communitys%20Route/communityAcceptInvite * * @param community_id The id of the community * @param token The token required to get the invite. * * @returns promise */ static retrieveInvite(community_id: string, token: string, params?: Record): AxiosPromise>; /** * List the users who are currently associated with the community. * * @see https://api.glitch.fun/api/documentation#/communitys%20Route/communityUserList * * @param community_id The id of the community. * * @returns promise */ static listUsers(community_id: string, params?: Record): AxiosPromise>; /** * Add a user to a community. * * @see https://api.glitch.fun/api/documentation#/communitys%20Route/createcommunityUser * * @param community_id The id of the community. * @param data The data to be passed when adding a user. * * @returns promise */ static addUser(community_id: string, data?: object, params?: Record): AxiosPromise>; /** * Retrieves a single user and their information that is associated with a community. * * @see https://api.glitch.fun/api/documentation#/communitys%20Route/showcommunityUser * * @param community_id The id of the community. * @param user_id The id of the user. * * @returns promise */ static getUser(community_id: string, user_id: string, params?: Record): AxiosPromise>; /** * Updates the users information associated with the community. * * @param community_id The id of the community. * @param user_id The id of the user. * * @returns promise */ static updatetUser(community_id: string, user_id: string, data?: object, params?: Record): AxiosPromise>; /** Correctly-spelled alias retained alongside the legacy method name. */ static updateUser(community_id: string, user_id: string, data?: object, params?: Record): AxiosPromise>; /** * Removes a user from a community. * * @param community_id The id of community. * @param user_id The id of the user. * * @returns promise */ static removetUser(community_id: string, user_id: string, params?: Record): AxiosPromise>; /** * Finds a community either by its subdomain or cname. The cname must be active. * * @param domain The subcname of the community. * * @returns promise */ static findByDomain(domain: string, params?: Record): AxiosPromise>; /** * Has a user join a community. The join is executed using the current user's authentication token. * * @see https://api.glitch.fun/api/documentation#/Community%20Route/updateCommunityStorage * * @param community_id The id of the community to update. * * @returns promise */ static join(community_id: string, data: object, params?: Record): AxiosPromise>; /** * Add a payment method to the community. * * @see https://api.glitch.fun/api/documentation#/Community%20Route/51802cc0cb758850807345918130cf3e * * @param community_id The id of the community to update. * * @returns promise */ static addPaymentMethod(community_id: string, data: object, params?: Record): AxiosPromise>; /** * Sets the default payment method for the community. * * @see https://api.glitch.fun/api/documentation#/Community%20Route/dd743e8a7da3b2bebe557cbc6675380d * * @param community_id The id of the community to update. * * @returns promise */ static setDefaultPaymentMethod(community_id: string, data: object, params?: Record): AxiosPromise>; /** * Get the available payment methods. * * @see https://api.glitch.fun/api/documentation#/communitys%20Route/communitysUserInviteList * * @param community_id The id of the community * * @returns promise */ static getPaymentMethods(community_id: string, params?: Record): AxiosPromise>; /** * Get the ledger for all transactions from the community. * * @see https://api.glitch.fun/api/documentation#/communitys%20Route/communitysUserInviteList * * @param community_id The id of the community * * @returns promise */ static getLedger(community_id: string, params?: Record): AxiosPromise>; /** * Clear Docusign authentication information from the current user. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/userCreateDonationPage * * @returns promise */ static clearDocusignAuth(community_id: string): AxiosPromise>; /** * Clear SimpleSin authentication information from the current user. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/userCreateDonationPage * * @returns promise */ static clearSimplesignAuth(community_id: string): AxiosPromise>; /** * Clear SimpleSin authentication information from the current user. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/userCreateDonationPage * * @returns promise */ static clearHellosignAuth(community_id: string): AxiosPromise>; /** * List all the saved email templates for the community. * * @see https://api.glitch.fun/api/documentation#/Community%20Route/resourceCommunityList * * @returns promise */ static listEmailTemplates(community_id: string, params?: Record): AxiosPromise>; /** * Create a new email template for the community * * @see https://api.glitch.fun/api/documentation#/Community%20Route/newCommunityResourceStorage * * @param data The data to be passed when creating a community. * * @returns Promise */ static createEmailTemplate(community_id: string, data: object, params?: Record): AxiosPromise>; /** * Update an email template for the community. * * @see https://api.glitch.fun/api/documentation#/Community%20Route/updateCommunityStorage * * @param community_id The id of the community to update. * @param data The data to update. * * @returns promise */ static updateEmailTemplate(community_id: string, template_id: string, data: object, params?: Record): AxiosPromise>; /** * Retrieve a single email template for the community. * * @see https://api.glitch.fun/api/documentation#/Community%20Route/showCommunityStorage * * @param community_id The id fo the community to retrieve. * * @returns promise */ static viewEmailTemplate(community_id: string, template_id: string, params?: Record): AxiosPromise>; /** * Deletes an email template for the community. * * @see https://api.glitch.fun/api/documentation#/Community%20Route/destoryCommunityStorage * * @param community_id The id of the community to delete. * @returns promise */ static deleteEmailTemplate(community_id: string, template_id: string, params?: Record): AxiosPromise>; /** * Populates an email template for the community that will replace the platholders with the data provided. * * @see https://api.glitch.fun/api/documentation#/Community%20Route/newCommunityResourceStorage * * @param data The data to be passed when creating a community. * * @returns Promise */ static populateEmailTemplate(community_id: string, template_id: string, data: object, params?: Record): AxiosPromise>; /** * List all newsletters for a community. * * @param community_id The ID of the community. * @param params Query parameters. * @returns Promise */ static listNewsletters(params?: Record): AxiosPromise>; /** * Create a new newsletter for a community. * * @param community_id The ID of the community. * @param data The data for the new newsletter. * @returns Promise */ static createNewsletter(community_id: string, data: object, params?: Record): AxiosPromise>; /** * Get a specific newsletter. * * @param community_id The ID of the community. * @param newsletter_id The ID of the newsletter. * @param params Query parameters. * @returns Promise */ static viewNewsletter(community_id: string, newsletter_id: string, params?: Record): AxiosPromise>; /** * Update a specific newsletter. * * @param community_id The ID of the community. * @param newsletter_id The ID of the newsletter. * @param data The data to update. * @returns Promise */ static updateNewsletter(community_id: string, newsletter_id: string, data: object, params?: Record): AxiosPromise>; /** * Delete a specific newsletter. * * @param community_id The ID of the community. * @param newsletter_id The ID of the newsletter. * @returns Promise */ static deleteNewsletter(community_id: string, newsletter_id: string, params?: Record): AxiosPromise>; /** * Import subscribers from a CSV or XLS file into a newsletter. * * @param community_id The ID of the community. * @param newsletter_id The ID of the newsletter. * @param file The CSV or XLS file. * @param params Additional parameters. * @returns Promise */ static importNewsletterSubscribers(community_id: string, newsletter_id: string, file: File, data?: object, params?: Record): AxiosPromise>; /** * Updates the banner image for the game show using a File object. * * @see https://api.glitch.fun/api/documentation#/GameShows/uploadGameShowBannerImage * * @param file The file object to upload. * @param data Any additional data to pass along to the upload. * * @returns promise */ static uploadNewsletterBannerImageFile(community_id: string, newsletter_id: string, file: File, data?: object, params?: Record): AxiosPromise>; /** * Updates the banner image for the game show using a Blob. * * @see https://api.glitch.fun/api/documentation#/GameShows/uploadGameShowBannerImage * * @param blob The blob to upload. * @param data Any additional data to pass along to the upload * * @returns promise */ static uploadNewsletterBannerImageBlob(community_id: string, newsletter_id: string, blob: Blob, data?: object, params?: Record): AxiosPromise>; /** * List all campaigns for a newsletter. * * @param community_id The ID of the community. * @param newsletter_id The ID of the newsletter. * @param params Query parameters. * @returns Promise */ static listCampaigns(community_id: string, newsletter_id: string, params?: Record): AxiosPromise>; /** * Create a new campaign for a newsletter. * * @param community_id The ID of the community. * @param newsletter_id The ID of the newsletter. * @param data The data for the new campaign. * @returns Promise */ static createCampaign(community_id: string, newsletter_id: string, data: object, params?: Record): AxiosPromise>; /** * Get a specific campaign. * * @param community_id The ID of the community. * @param newsletter_id The ID of the newsletter. * @param campaign_id The ID of the campaign. * @param params Query parameters. * @returns Promise */ static viewCampaign(community_id: string, newsletter_id: string, campaign_id: string, params?: Record): AxiosPromise>; /** * Update a specific campaign. * * @param community_id The ID of the community. * @param newsletter_id The ID of the newsletter. * @param campaign_id The ID of the campaign. * @param data The data to update. * @returns Promise */ static updateCampaign(community_id: string, newsletter_id: string, campaign_id: string, data: object, params?: Record): AxiosPromise>; /** * Delete a specific campaign. * * @param community_id The ID of the community. * @param newsletter_id The ID of the newsletter. * @param campaign_id The ID of the campaign. * @returns Promise */ static deleteCampaign(community_id: string, newsletter_id: string, campaign_id: string, params?: Record): AxiosPromise>; /** * Send a campaign immediately. * * @param community_id The ID of the community. * @param newsletter_id The ID of the newsletter. * @param campaign_id The ID of the campaign. * @returns Promise */ static sendCampaign(community_id: string, newsletter_id: string, campaign_id: string, params?: Record): AxiosPromise>; /** * Schedule a campaign to be sent later. * * @param community_id The ID of the community. * @param newsletter_id The ID of the newsletter. * @param campaign_id The ID of the campaign. * @param data The scheduling data (e.g., scheduled_at). * @returns Promise */ static scheduleCampaign(community_id: string, newsletter_id: string, campaign_id: string, data: object, params?: Record): AxiosPromise>; /** * Test an email campaign by sending an email to the current user. * * @param community_id The ID of the community. * @param newsletter_id The ID of the newsletter. * @param campaign_id The ID of the campaign. * @param data The scheduling data (e.g., scheduled_at). * @returns Promise */ static testCampaign(community_id: string, newsletter_id: string, campaign_id: string, data: object, params?: Record): AxiosPromise>; /** * List all emails sent in a campaign. * * @param community_id The ID of the community. * @param newsletter_id The ID of the newsletter. * @param campaign_id The ID of the campaign. * @param params Query parameters. * @returns Promise */ static listCampaignEmails(community_id: string, newsletter_id: string, campaign_id: string, params?: Record): AxiosPromise>; /** * List all subscribers of a newsletter (admin only). * * @param community_id The ID of the community. * @param newsletter_id The ID of the newsletter. * @param params Query parameters. * @returns Promise */ static listNewsletterSubscribers(community_id: string, newsletter_id: string, params?: Record): AxiosPromise>; /** * Get a specific subscriber of a newsletter (admin only). * * @param community_id The ID of the community. * @param newsletter_id The ID of the newsletter. * @param subscriber_id The ID of the subscriber. * @param params Query parameters. * @returns Promise */ static viewNewsletterSubscriber(community_id: string, newsletter_id: string, subscriber_id: string, params?: Record): AxiosPromise>; /** * Update a specific subscriber of a newsletter (admin only). * * @param community_id The ID of the community. * @param newsletter_id The ID of the newsletter. * @param subscriber_id The ID of the subscriber. * @param data The data to update. * @returns Promise */ static updateNewsletterSubscriber(community_id: string, newsletter_id: string, subscriber_id: string, data: object, params?: Record): AxiosPromise>; /** * Delete a specific subscriber from a newsletter (admin only). * * @param community_id The ID of the community. * @param newsletter_id The ID of the newsletter. * @param subscriber_id The ID of the subscriber. * @returns Promise */ static deleteNewsletterSubscriber(community_id: string, newsletter_id: string, subscriber_id: string, params?: Record): AxiosPromise>; /** * Register a new subscriber to a newsletter. * * @param community_id The ID of the community. * @param newsletter_id The ID of the newsletter. * @param data The subscriber data. * @returns Promise */ static registerNewsletterSubscriber(community_id: string, newsletter_id: string, data: object, params?: Record): AxiosPromise>; /** * Get newsletter overall reports (subscriber changes, unsubscribes, etc.). * * @param community_id The ID of the community. * @param newsletter_id The ID of the newsletter. * @param params Optional query params (start_date, end_date, etc). * @returns Promise with aggregated data */ static newsletterReports(community_id: string, newsletter_id: string, params?: Record): AxiosPromise>; /** * Get campaign-level stats for a newsletter. * * @param community_id The ID of the community. * @param newsletter_id The ID of the newsletter. * @param params Optional query params (start_date, end_date, etc). * @returns Promise with campaign stats */ static newsletterCampaignReports(community_id: string, newsletter_id: string, params?: Record): AxiosPromise>; /** * Retrieves daily subscriber trend data for the specified newsletter. * * @param community_id The UUID of the community * @param newsletter_id The UUID of the newsletter * @param params Optional date-range filter (start_date, end_date, etc.) */ static newsletterSubscriberTrend(community_id: string, newsletter_id: string, params?: Record): AxiosPromise>; /** * Export subscribers for a specific newsletter. * The file is generated asynchronously on the server and * the user is emailed a link to download the file. * * @param community_id The ID of the community. * @param newsletter_id The ID of the newsletter. * @param data Export options (format: 'csv' or 'xlsx'). * @returns Promise */ static exportNewsletterSubscribers(community_id: string, newsletter_id: string, data: { format: 'csv' | 'xlsx'; }, params?: Record): AxiosPromise>; /** * Import game installs from a game title installations to a newsletter * * @param community_id The ID of the community. * @param newsletter_id The ID of the newsletter. * @param data Export options (format: 'csv' or 'xlsx'). * @returns Promise */ static importGameInstalls(community_id: string, newsletter_id: string, data: { format: 'csv' | 'xlsx'; }, params?: Record): AxiosPromise>; /** * Retrieve the current user's pending community invitations across all communities. * * @returns promise */ static myInvites(params?: Record): AxiosPromise>; /** * Resends an invitation to a user. * * @param community_id The id of the community. * @param invite_id The id of the invite to resend. * * @returns promise */ static resendInvite(community_id: string, invite_id: string, params?: Record): AxiosPromise>; /** * Revokes/deletes a community invitation. * * @param community_id The id of the community. * @param invite_id The id of the invite to delete. * * @returns promise */ static deleteInvite(community_id: string, invite_id: string, params?: Record): AxiosPromise>; /** * Create a one-time immediate invoice for a business account. * * @param community_id The ID of the community. * @param data { amount: number, description: string } */ static createOneTimeInvoice(community_id: string, data: { amount: number; description: string; }, params?: Record): AxiosPromise>; /** * Get a detailed breakdown of a specific invoice including per-title usage. * * @param community_id The ID of the community. * @param invoice_id The Stripe Invoice ID (e.g., in_123...). */ static getInvoiceDetails(community_id: string, invoice_id: string, params?: Record): AxiosPromise>; /** * Generate a custom date-range statement for reimbursement. * * @param community_id The ID of the community. * @param params Should include { start_date: 'YYYY-MM-DD', end_date: 'YYYY-MM-DD' } */ /** * Generate a custom date-range statement for reimbursement. * * @param community_id The ID of the community. * @param startDate 'YYYY-MM-DD' * @param endDate 'YYYY-MM-DD' */ static getCustomStatement(community_id: string, startDate: string, endDate: string): AxiosPromise>; /** * List all Stripe invoices for the community. */ static listInvoices(community_id: string): AxiosPromise>; /** * List influencers saved to the community's private talent pool. * * @param community_id The UUID of the community. * @param params Optional filters like 'list_name'. */ static listSavedInfluencers(community_id: string, params?: Record): AxiosPromise>; /** * Save an influencer to the community's talent pool (Shortlist). * * @param community_id The UUID of the community. * @param data { influencer_id: string, list_name?: string, tags?: string[] } */ static saveInfluencerToPool(community_id: string, data: object): AxiosPromise>; } /** Human-readable earning categories returned by influencer payout APIs. */ type InfluencerPayoutSourceType = "campaign_compensation" | "ad_revenue_share" | "subscription_residual" | "manual_adjustment"; /** Auditable metrics and creator-content attribution attached to a payout. */ interface InfluencerPayoutBreakdown { label?: string; payment_method?: "flat" | "performance" | "hybrid"; provider?: string; period_start?: string; period_end?: string; impressions?: number; clicks?: number; short_link_id?: string | null; short_link_click_id?: string | null; social_media_post_id?: string | null; tracking_link_label?: string | null; social_platform?: string | null; social_post_url?: string | null; } /** One campaign or advertising earning payable to the authenticated influencer. */ interface InfluencerPayout { id: string; user_id: string; campaign_id: string; amount: number; currency: string; status: "pending" | "completed" | "failed"; payout_date?: string | null; source_type: InfluencerPayoutSourceType; source_label: string; source_reference_id?: string | null; breakdown?: InfluencerPayoutBreakdown; campaign?: Record; } /** Optional filters for the authenticated influencer's payout history. */ interface InfluencerPayoutQuery { campaign_id?: string; month?: number; year?: number; amount?: number; status?: "pending" | "completed" | "failed"; source_type?: InfluencerPayoutSourceType; orderBy?: "created_at" | "amount"; orderDirection?: "asc" | "desc"; } /** Delivery state for the authenticated user's registered email address. */ type EmailDeliveryState = "healthy" | "suppressed"; /** Recovery action selected by the API for the current suppression category. */ type EmailDeliveryRecoveryAction = "none" | "self_service" | "change_email" | "contact_support"; /** Self-service and fallback actions available for an email-delivery state. */ interface EmailDeliveryRecovery { allowed: boolean; action: EmailDeliveryRecoveryAction; requires_acknowledgement: boolean; account_verified?: boolean; change_email_path?: string; support_path?: string; } /** Current delivery state for the authenticated user's registered email. */ interface EmailDeliveryStatus { state: EmailDeliveryState; action_required: boolean; email: string | null; category: string | null; provider: string | null; suppressed_at: string | null; display_reason: string | null; recovery: EmailDeliveryRecovery; restored_now?: boolean; } /** Explicit confirmation required to remove an eligible active suppression. */ interface RestoreEmailDeliveryRequest { acknowledged: true; } declare class Users { /** * List all the users. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/userList * * @returns promise */ static list(params?: Record): AxiosPromise>; /** * Updates a users information. Requires the users JSON Web Token (JWT) for them to update their profile. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/updateUser * * @param data The date to be passed when creating a competiton. * * @returns Promise */ static update(data: object, params?: Record): AxiosPromise>; /** * Gets the current users information based on the current Json Web Token (JWT). * * @see https://api.glitch.fun/api/documentation#/Users%20Route/showMe * * @param user_id The id of the user to update. * @param data The data to update. * * @returns promise */ static me(params?: Record): AxiosPromise>; /** * Gets the delivery and suppression state for the authenticated user's * current registered email address. */ static emailDeliveryStatus(): AxiosPromise>; /** * Removes an eligible active suppression for the authenticated user's * current verified email address. */ static restoreEmailDelivery(data: RestoreEmailDeliveryRequest): AxiosPromise>; /** * Gets the campaigns the users has been invited too. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/showMe * * @param user_id The id of the user to update. * @param data The data to update. * * @returns promise */ static getCampaignInvites(params?: Record): AxiosPromise>; /** * Gets the authenticated influencer's payouts from campaigns and attributed * game advertising. Advertising revenue is returned as a separate additive * source with provider-period metrics and tracking-link/social-post IDs. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/showMe * * @param params Optional campaign, date, status, source, and ordering filters. * * @returns promise */ static getPayouts(params?: InfluencerPayoutQuery): AxiosPromise>; /** * Sync the current influencer's information. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/showMe * * @param user_id The id of the user to update. * @param data The data to update. * * @returns promise */ static syncInfluencer(params?: Record): AxiosPromise>; /** * Create profile data for an influencer based on their synced information and social media posts. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/generateUserInfluencerProfile * * @param user_id The id of the user to update. * @param data The data to update. * * @returns promise */ static generateInfluencerProfile(params?: Record): AxiosPromise>; /** * Will follow and unfollow a user. If the user is not being following, it will follow the user. If they are following, it will unfollow the user. The current JWT is used for the follower. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/userToggleFollow * * @param user_id The id fo the user to retrieve. * * @returns promise */ static followToggle(user_id: string): AxiosPromise>; /** * Show a users profile. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/showUser * * @param user_id The id of the user to delete. * @returns promise */ static profile(user_id: string): AxiosPromise>; /** * Retrieves a user's one time login token based on a users JWT. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/userOneTimeLoginToken * * * @returns promise */ static oneTimeLoginToken(): AxiosPromise>; /** * Updates the avatar image for the user using a File object. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/userUploadAvatarImage * * @param file The file object to upload. * @param data Any additional data to pass along to the upload. * * @returns promise */ static uploadAvatarImageFile(file: File, data?: object): AxiosPromise>; /** * Updates the avatar image for the user using a Blob. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/userUploadAvatarImage * * @param blob The blob to upload. * @param data Any additional data to pass along to the upload * * @returns promise */ static uploadAvatarImageBlob(blob: Blob, data?: object): AxiosPromise>; /** * Upload a banner image for the user, as a File object. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/userUploadBannerImage * * @param file The file object to upload. * @param data Any additional data to pass along to the upload. * * @returns promise */ static uploadBannerImageFile(file: File, data?: object): AxiosPromise>; /** * Upload a banner image for the user, as a Blob. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/userUploadBannerImage * * @param file The blob to upload. * @param data Any additional data to pass along to the upload. * * @returns promise */ static uploadBannerImageBlob(blob: Blob, data?: object): AxiosPromise>; /** * Creates a donation page for that user by syncing their information with various * payment service. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/userCreateDonationPage * * @returns promise */ static createDonationPage(): AxiosPromise>; /** * Clear Twitches authentication information from the current user. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/userCreateDonationPage * * @returns promise */ static clearTwitchAuth(): AxiosPromise>; /** * Clear Facebook authentication information from the current user. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/userCreateDonationPage * * @returns promise */ static clearFacebookAuth(): AxiosPromise>; /** * Clear Google authentication information from the current user. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/userCreateDonationPage * * @returns promise */ static clearGoogleAuth(): AxiosPromise>; /** * Clear Gmail Workspace authentication information from the current user. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/clearGmailAuth * * @returns promise */ static clearGmailAuth(): AxiosPromise>; /** * Clear Stripe authentication information from the current user. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/userCreateDonationPage * * @returns promise */ static clearStripeAuth(): AxiosPromise>; /** * Clear TikTok authentication information from the current user. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/userCreateDonationPage * * @returns promise */ static clearTikTokAuth(): AxiosPromise>; /** * Clear YouTube authentication information from the current user. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/userCreateDonationPage * * @returns promise */ static clearYoutubeAuth(): AxiosPromise>; /** * Clear Reddit authentication information from the current user. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/userCreateDonationPage * * @returns promise */ static clearRedditAuth(): AxiosPromise>; /** * Clear Docusign authentication information from the current user. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/clearDocusignAuth * * @returns promise */ static clearDocusignAuth(): AxiosPromise>; /** * Clear Twitter authentication information from the current user. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/userCreateDonationPage * * @returns promise */ static clearTwitterAuth(): AxiosPromise>; /** * Clear StreamElements authentication information from the current user. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/userCreateDonationPage * * @returns promise */ static clearStreamElementsAuth(): AxiosPromise>; /** * Returns a list of tips received by the authenticated user for a given month and year * * @see https://api.glitch.fun/api/documentation#/Users%20Route/userCreateDonationPage * * @returns promise */ static getTipsReceivedForMonth(params?: Record): AxiosPromise>; /** * Returns a list of tips given by the authenticated user for a given month and year. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/userCreateDonationPage * * @returns promise */ static getTipsGivenForMonth(params?: Record): AxiosPromise>; /** * Returns the aggregated monthly tips received by the authenticated user over a certain number of months. Defaults to 12 months if not provided. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/userCreateDonationPage * * @returns promise */ static aggregateMonthlyReceivedTips(params?: Record): AxiosPromise>; /** * Returns the aggregated monthly tips given by the authenticated user over a certain number of months. Defaults to 12 months if not provided. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/userCreateDonationPage * * @returns promise */ static aggregateMonthlyGivenTips(params?: Record): AxiosPromise>; /** * Returns the user associated Youtube a channels a user has. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/userCreateDonationPage * * @returns promise */ static getFacebookGroups(params?: Record): AxiosPromise>; /** * Add a genre to a user. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/updateUser * * @param data The genre information to be passed to update the genre information. * * @returns Promise */ static addGenre(data: object, params?: Record): AxiosPromise>; /** * Remove a genre from a user. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/updateUser * * @param genre_id The id of the genre to remove. * * @returns Promise */ static removeGenre(genre_id: string, params?: Record): AxiosPromise>; /** * Add a type to a user. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/updateUser * * @param data The genre information to be passed to update the type information. * * @returns Promise */ static addType(data: object, params?: Record): AxiosPromise>; /** * Remove a genre from a user. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/updateUser * * @param genre_id The id of the genre to remove. * * @returns Promise */ static removeType(type_id: string, params?: Record): AxiosPromise>; /** * Verify a user's account to complete their sign-up process. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/verifyAccount * * @param data The genre information to be passed to update the type information. * * @returns Promise */ static verifyAccount(data: object, params?: Record): AxiosPromise>; /** * Gets the instagram accounts associated with the user. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/getInstagramAccounts * * @returns promise */ static getInstagramAccounts(params?: Record): AxiosPromise>; /** * Gets the Facebook Pages associated with the user. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/getFacebookPages * * @returns Promise resolving to the list of Facebook Pages */ static getFacebookPages(params?: Record): AxiosPromise>; /** * Gets the subreddits the user is subscribed to. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/getSubreddits * * @returns Promise resolving to the list of subreddits */ static getSubreddits(params?: Record): AxiosPromise>; /** * Gets the flairs for a specific subreddit. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/getSubredditFlairs * * @param subreddit The name of the subreddit to get flairs for. * @returns Promise resolving to the list of flairs */ static getSubredditFlairs(subreddit: string, params?: Record): AxiosPromise>; /** * Search all the users with advanced meilisearch options * * @see https://api.glitch.fun/api/documentation#/Users%20Route/userSearch * * @returns promise */ static search(params?: Record): AxiosPromise>; /** * Resends the verification email to the authenticated user. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/resendVerificationEmail * * @returns Promise */ static resendVerificationEmail(): AxiosPromise>; /** * Clear Instagram authentication information from the current user. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/clearInstagramAuth * * @returns promise */ static clearInstagramAuth(): AxiosPromise>; /** * Gets the rules for a specific subreddit. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/getSubredditRules * * @param subreddit The name of the subreddit to get rules for. * @returns Promise resolving to the list of rules */ static getSubredditRules(subreddit: string, params?: Record): AxiosPromise>; /** * Get a list of games the current user has played. * Includes playtime and last played timestamps. */ static playedGames(params?: Record): AxiosPromise>; /** * Get all stats for a user, optionally filtered by title_id. */ static getProgressionStats(user_id: string, params?: { title_id?: string; }): AxiosPromise>; /** * Get all achievements for a user. */ static getProgressionAchievements(user_id: string, params?: { title_id?: string; status?: string; }): AxiosPromise>; /** * Get the raw gameplay history (Run Records) for a user. */ static getProgressionHistory(user_id: string, params?: { title_id?: string; page?: number; }): AxiosPromise>; /** * List the authenticated user's media library (clips, screenshots, AI generated). * * @param params Optional filters: { type: 'clip'|'screenshot'|'ai_generated', title_id: string } */ static listMedia(params?: Record): AxiosPromise>; /** * Add a Media record to the user's personal library. * * @param data { media_id: string, type: string, title_id?: string, label?: string, studio_metadata?: object } */ static storeMedia(data: object): AxiosPromise>; /** * Retrieve details for a specific library item. */ static viewMedia(id: string): AxiosPromise>; /** * Update a library item's label or metadata. */ static updateMedia(id: string, data: object): AxiosPromise>; /** * Remove an item from the user's library (Soft Delete). */ static deleteMedia(id: string): AxiosPromise>; /** * Apply AI transformations (Style Transfer/Upscale) to a library item. * * @param id The UUID of the UserMedia record. * @param data { prompt: string, tool: 'style_transfer'|'upscale' } */ static modifyMedia(id: string, data: { prompt: string; tool: string; }): AxiosPromise>; /** * Get AI-generated suggestions for the best 15-second window to trim a video. */ static suggestSmartTrim(id: string): AxiosPromise>; /** * Share a library item to social media as User Generated Content (UGC). * This uses the player media share route, not the developer/scheduler post route. * * @param id The UUID of the UserMedia record. * @param data Player post payload, including platform/channel/schedule options. */ static shareMedia(id: string, data: { platform: string; social_platform?: string; title?: string; content: string; status?: 'pending' | 'scheduled' | string; scheduled_at?: string; main_channel_id?: string; sub_channel_id?: string; token?: string; track_links?: boolean; media_type?: string; [key: string]: any; }): AxiosPromise>; /** * List all gifts purchased by the current user. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/userSentGifts * * @param params Optional filters: title_id, status, gift_type, min_amount, max_amount, start_date, end_date, sort_by, sort_order. * @returns promise */ static sentGifts(params?: Record): AxiosPromise>; /** * List all gifts received by the current user. * * @see https://api.glitch.fun/api/documentation#/Users%20Route/userReceivedGifts * * @param params Optional filters: title_id, status, start_date, sort_by. * @returns promise */ static receivedGifts(params?: Record): AxiosPromise>; } declare class Events { /** * List all the events * * @see https://api.glitch.fun/api/documentation#/Event%20Route/resourceEventList * * @returns promise */ static list(params?: Record): AxiosPromise>; /** * Create a new event. * * @see https://api.glitch.fun/api/documentation#/Event%20Route/newEventResourceStorage * * @param data The data to be passed when creating an event. * * @returns Promise */ static create(data: object, params?: Record): AxiosPromise>; /** * Update a event * * @see https://api.glitch.fun/api/documentation#/Event%20Route/updateEventStorage * * @param event_id The id of the event to update. * @param data The data to update. * * @returns promise */ static update(event_id: string, data: object, params?: Record): AxiosPromise>; /** * Retrieve the information for a single event. * * @see https://api.glitch.fun/api/documentation#/Event%20Route/showEventStorage * * @param event_id The id fo the event to retrieve. * * @returns promise */ static view(event_id: string, params?: Record): AxiosPromise>; /** * Deletes a event. * * @see https://api.glitch.fun/api/documentation#/Event%20Route/destoryEventStorage * * @param event_id The id of the event to delete. * @returns promise */ static delete(event_id: string, params?: Record): AxiosPromise>; /** * The event is synced with Invirtu for the lie streams. This will allow you to update * * * @see https://api.glitch.fun/api/documentation#/Event%20Route/updateEventStorage * * @param event_id The id of the event to update. * @param data The data to update. * * @returns promise */ static updateInvirtuEvent(event_id: string, data: object, params?: Record): AxiosPromise>; /** * Add an RTMP source to multicast a stream too. * * @see https://api.glitch.fun/api/documentation#/Event%20Route/addRTMPSource * * @param event_id The id of the event. * @param data The data to be passed when adding an RTMP source. * * @returns promise */ static addRTMPSource(event_id: string, data?: object, params?: Record): AxiosPromise>; /** * Update an RTMP Source for multicasing. * * @see https://api.glitch.fun/api/documentation#/Event%20Route/addRTMPSource * * @param event_id The id of the event. * @param data The data to be passed when adding an RTMP source. * * @returns promise */ static updateRTMPSource(event_id: string, stream_id: string, data?: object, params?: Record): AxiosPromise>; /** * Remove a RTMP source for multicasing. * * @see https://api.glitch.fun/api/documentation#/Event%20Route/addRTMPSource * * @param event_id The id of the event. * @param data The data to be passed when adding an RTMP source. * * @returns promise */ static removeRTMPSource(event_id: string, stream_id: string, data?: object, params?: Record): AxiosPromise>; /** * Add a Twitch Stream to the current event. The user must have authenticatd with Twitch. * * @see https://api.glitch.fun/api/documentation#/Event%20Route/addRTMPSource * * @param event_id The id of the event. * @param data The data to be passed when adding an RTMP source. * * @returns promise */ static addTwitchMulticast(event_id: string, data?: object, params?: Record): AxiosPromise>; /** * Add a Facebook Stream to the current event. The user must have authenticatd with Facebook. * * @see https://api.glitch.fun/api/documentation#/Event%20Route/addRTMPSource * * @param event_id The id of the event. * @param data The data to be passed when adding an RTMP source. * * @returns promise */ static addFacebookMulticast(event_id: string, data?: object, params?: Record): AxiosPromise>; /** * Add a Youtube Stream to the current event. The user must have authenticatd with Google. * * @see https://api.glitch.fun/api/documentation#/Event%20Route/addRTMPSource * * @param event_id The id of the event. * @param data The data to be passed when adding an RTMP source. * * @returns promise */ static addYoutubeMulticast(event_id: string, data?: object, params?: Record): AxiosPromise>; /** * A function that should be run on an interval to set the event as live when the live stream is active. * * @see https://api.glitch.fun/api/documentation#/Event%20Route/syncLive * * @param event_id The id of the event. * * @returns promise */ static syncAsLive(event_id: string, data?: object, params?: Record): AxiosPromise>; /** * Updates the main image for the event using a File object. * * @see https://api.glitch.fun/api/documentation#/Event%20Route/uploadMainEventImage * * @param file The file object to upload. * @param data Any additional data to pass along to the upload. * * @returns promise */ static uploadMainImageFile(event_id: string, file: File, data?: object, params?: Record): AxiosPromise>; /** * Updates the main image for the event using a Blob. * * @see https://api.glitch.fun/api/documentation#/Event%20Route/uploadMainEventImage * * @param blob The blob to upload. * @param data Any additional data to pass along to the upload * * @returns promise */ static uploadMainImageBlob(event_id: string, blob: Blob, data?: object, params?: Record): AxiosPromise>; /** * Updates the banner image for the event using a File object. * * @see https://api.glitch.fun/api/documentation#/Event%20Route/uploadBannerEventImage * * @param file The file object to upload. * @param data Any additional data to pass along to the upload. * * @returns promise */ static uploadBannerImageFile(event_id: string, file: File, data?: object, params?: Record): AxiosPromise>; /** * Updates the banner image for the event using a Blob. * * @see https://api.glitch.fun/api/documentation#/Event%20Route/uploadBannerEventImage * * @param blob The blob to upload. * @param data Any additional data to pass along to the upload * * @returns promise */ static uploadBannerImageBlob(event_id: string, blob: Blob, data?: object, params?: Record): AxiosPromise>; /** * Enable Broadcast Mode. Broadcast mode is when the live stream is broadcasted from the game play through a protocol * such as screen sharing. * * @see https://api.glitch.fun/api/documentation#/Event%20Route/enableBroadcastMode * * @param event_id The id of the event. * * @returns promise */ static enableBroadcastMode(event_id: string, data?: object, params?: Record): AxiosPromise>; /** * Enable livestream mode, in which the stream will be delivered to the invirtu RTMP endpoint for * streaming. * * @param event_id The id of the event. * * @returns promise */ static enableLivestreamMode(event_id: string, data?: object, params?: Record): AxiosPromise>; /** * Sends content that will appear on-screen to the user. * * @see https://api.glitch.fun/api/documentation#/Event%20Route/sendOnScreenContent * * @param event_id The id of the event. * @param data The information to send on-screen. * * @returns promise */ static sendOnScreenContent(event_id: string, data: object, params?: Record): AxiosPromise>; /** * Uploads an image that can be used and overlay later. A File object is used. * * @see https://api.glitch.fun/api/documentation#/Event%20Route/uploadOverlayImage * * @param event_id The id of the event. * @param file The image as a file. * @param data Any additional data to be sent in the request. * * @returns promise */ static addOverlayAsFile(event_id: string, file: File, data?: object): AxiosPromise>; /** * Uploads an image that can be used and overlay later. A blob is used. * * @see https://api.glitch.fun/api/documentation#/Event%20Route/uploadOverlayImage * * @param event_id The id of the event. * @param blob Image data as a blob * @param data Any additional data to be sent in the request. * * @returns promise */ static addOverlayAsBlob(event_id: string, blob: Blob, data?: object, params?: Record): AxiosPromise>; /** * Deletes an overlay image. * * @see https://api.glitch.fun/api/documentation#/Event%20Route/destoryOverlayStorage * * @param event_id The id of the event. * @param overlay_id The id of the overlay. * * @returns promise */ static removeOverlay(event_id: string, overlay_id: string, params?: Record): AxiosPromise>; /** * Enables an overlay so that it will appear on screen. * * @see https://api.glitch.fun/api/documentation#/Event%20Route/enableOverlayImage * * @param event_id The id of the event. * @param overlay_id The id of the overlay. * * @returns promise */ static enableOverlay(event_id: string, overlay_id: string, data?: object, params?: Record): AxiosPromise>; /** * Disables the overlay so it no longer appears on-screen. * * @see https://api.glitch.fun/api/documentation#/Event%20Route/disableOverlay * * @param event_id The id of the event. * * @returns promise */ static disableOverlay(event_id: string, data?: object, params?: Record): AxiosPromise>; /** * Enable the donations to appear on-screen * * @see https://api.glitch.fun/api/documentation#/Event%20Route/enableDonations * * @param event_id The id of the event. * * @returns promise */ static enableDonations(event_id: string, data?: object, params?: Record): AxiosPromise>; /** * Disable the donations and remove from the screen. * * @param event_id * @returns */ static disableDonations(event_id: string, data?: object, params?: Record): AxiosPromise>; static sendInvite(event_id: string, data: object, params?: Record): AxiosPromise>; static acceptInvite(event_id: string, token: string, params?: Record): AxiosPromise>; /** * Update a recording related to an event. * * @see https://api.glitch.fun/api/documentation#/Event%20Route/updateEventRecording * * @param event_id The id of the event to update. * @param recording_id The id of the recording to update. * @param data The data to update. * * @returns promise */ static updateRecording(event_id: string, recording_id: string, data: object, params?: Record): AxiosPromise>; /** * Enable a widget for the current event. * * @see https://api.glitch.fun/api/documentation#/Event%20Route/updateEventRecording * * @param event_id The id of the event to update. * @param widget_id The id of the widget to enable. * @param data The data, which should contain the roles. * * @returns promise */ static enableWidget(event_id: string, widget_id: string, data: object, params?: Record): AxiosPromise>; /** * Disable a widget for the current event. * * @see https://api.glitch.fun/api/documentation#/Event%20Route/updateEventRecording * * @param event_id The id of the event to update. * @param widget_id The id of the widget to disable. * * @returns promise */ static disableWidget(event_id: string, widget_id: string, data: object, params?: Record): AxiosPromise>; /** * Get all the tips associated with the current event. * * @see https://api.glitch.fun/api/documentation#/Event%20Route/updateEventRecording * * @param event_id The id of the event to update. * * @returns promise */ static getTips(event_id: string, params?: Record): AxiosPromise>; /** * Sets the personality attribute of the AI to adjust how it will respond. * * @see https://api.glitch.fun/api/documentation#/Event%20Route/disableOverlay * * @param event_id The id of the event. * * @returns promise */ static setAIAvatarPersonalityAttribute(event_id: string, data?: object, params?: Record): AxiosPromise>; /** * Sets the AI Avatars name, which it can respond too. * * @see https://api.glitch.fun/api/documentation#/Event%20Route/disableOverlay * * @param event_id The id of the event. * * @returns promise */ static setAIAvatarName(event_id: string, data?: object, params?: Record): AxiosPromise>; /** * Sets the AI Avatars accent, that will dictate the void in which it responds. * * @see https://api.glitch.fun/api/documentation#/Event%20Route/disableOverlay * * @param event_id The id of the event. * * @returns promise */ static setAIAccent(event_id: string, data?: object, params?: Record): AxiosPromise>; /** * Sets the AI Avatar to that it willr respond to users in the chat. * * @see https://api.glitch.fun/api/documentation#/Event%20Route/disableOverlay * * @param event_id The id of the event. * * @returns promise */ static setAIAvatarRespondToChat(event_id: string, data?: object, params?: Record): AxiosPromise>; /** * Sets the AI Avatar so that it will respond to you. * * @see https://api.glitch.fun/api/documentation#/Event%20Route/disableOverlay * * @param event_id The id of the event. * * @returns promise */ static setAIAvatarRespondToMe(event_id: string, data?: object, params?: Record): AxiosPromise>; /** * Get the associated statistics for the campaign. * * @see https://api.glitch.fun/api/documentation#/Event%20Route/getStreamStatistics * * @returns promise */ static statistics(event_id: string, params?: Record): AxiosPromise>; /** * Get the stream view counts for the campaign. * * @see https://api.glitch.fun/api/documentation#/Event%20Route/getEventStreamViewCounts * * @returns promise */ static getStreamViewCounts(event_id: string, params?: Record): AxiosPromise>; } declare class Fingerprinting { /** * List identified user fingerprints with filtering options * * @param params Filtering options: * - title_id?: string - Filter by title ID * - device_id?: string - Filter by device ID * - user_install_id?: string - Filter by user install ID * - browser_fingerprint?: string - Filter by browser fingerprint hash * - device_fingerprint?: string - Filter by device fingerprint hash * - is_bot?: boolean - Filter by bot status * - start_date?: string - Start date (YYYY-MM-DD) * - end_date?: string - End date (YYYY-MM-DD) * - sort?: 'first_seen_at'|'last_seen_at'|'match_confidence' - Sort field * - order?: 'asc'|'desc' - Sort order * - per_page?: number - Items per page (max 100) * @returns Promise with paginated fingerprints data */ static listFingerprints(params?: Record): AxiosPromise>; /** * Get cross-platform user journey reports * * @param params Report options: * - title_id: string - Required title ID * - fingerprint_id?: string - Specific fingerprint ID to analyze * - start_date?: string - Start date (YYYY-MM-DD) * - end_date?: string - End date (YYYY-MM-DD) * - platform?: 'web'|'ios'|'android'|'steam'|'console' - Filter by platform * - event_type?: string - Filter by event type * - group_by?: 'day'|'week'|'month'|'year' - Grouping period * - include_paths?: boolean - Include journey paths in response * @returns Promise with user journey report data */ static userJourneyReport(params: Record): AxiosPromise>; /** * Get cross-platform attribution reports * * @param params Report options: * - title_id: string - Required title ID * - start_date?: string - Start date (YYYY-MM-DD) * - end_date?: string - End date (YYYY-MM-DD) * - conversion_event?: 'game_install'|'game_purchase'|'web_event' - Conversion event to analyze * - attribution_model?: 'first_touch'|'last_touch'|'linear'|'time_decay'|'position_based' - Attribution model * @returns Promise with attribution report data */ static attributionReport(params: Record): AxiosPromise>; /** * Get cross-device identity clusters * * @param params Report options: * - title_id: string - Required title ID * - start_date?: string - Start date (YYYY-MM-DD) * - end_date?: string - End date (YYYY-MM-DD) * - min_confidence?: number - Minimum match confidence score (0-100) * @returns Promise with device cluster report data */ static deviceClusterReport(params: Record): AxiosPromise>; /** * Get combined identity clusters and user journey reports * * @param params Report options: * - title_id: string - Required title ID * - start_date?: string - Start date (YYYY-MM-DD) * - end_date?: string - End date (YYYY-MM-DD) * - min_confidence?: number - Minimum confidence score to include (0-100) * - platform?: string - Filter by platform * - include_journeys?: boolean - Include detailed journeys * @returns Promise with identity cluster report data */ static identityClusterReport(params: Record): AxiosPromise>; /** * Get combined attribution paths and conversion funnels * * @param params Report options: * - title_id: string - Required title ID * - start_date?: string - Start date (YYYY-MM-DD) * - end_date?: string - End date (YYYY-MM-DD) * - conversion_event?: string - Conversion event type * - attribution_model?: string - Attribution model * - funnel_steps?: string - Comma-separated funnel steps * @returns Promise with attribution and funnel report data */ static attributionFunnelReport(params: Record): AxiosPromise>; /** * Get device and environment breakdown reports * * @param params Report options: * - title_id: string - Required title ID * - start_date?: string - Start date (YYYY-MM-DD) * - end_date?: string - End date (YYYY-MM-DD) * - platform?: string - Filter by platform * - group_by?: 'device_type'|'os'|'browser'|'country_code' - Grouping field * @returns Promise with device and environment report data */ static deviceEnvironmentReport(params: Record): AxiosPromise>; /** * Get unique vs returning user metrics * * @param params Report options: * - title_id: string - Required title ID * - start_date?: string - Start date (YYYY-MM-DD) * - end_date?: string - End date (YYYY-MM-DD) * - retention_period?: number - Days to consider for retention * @returns Promise with retention metrics data */ static uniqueReturningReport(params: Record): AxiosPromise>; /** * Get fraud and bot detection metrics * * @param params Report options: * - title_id: string - Required title ID * - start_date?: string - Start date (YYYY-MM-DD) * - end_date?: string - End date (YYYY-MM-DD) * - min_confidence?: number - Minimum confidence score to flag (0-100) * @returns Promise with fraud detection data */ static fraudDetectionReport(params: Record): AxiosPromise>; /** * Get geolocation distribution of users * * @param params Report options: * - title_id: string - Required title ID * - start_date?: string - Start date (YYYY-MM-DD) * - end_date?: string - End date (YYYY-MM-DD) * - group_by?: 'country'|'region'|'city' - Grouping level * @returns Promise with geolocation report data */ static geolocationReport(params: Record): AxiosPromise>; /** * Get pixel and utem reports * * @param params Report options: * - title_id: string - Required title ID * - start_date?: string - Start date (YYYY-MM-DD) * - end_date?: string - End date (YYYY-MM-DD) * - group_by?: 'country'|'region'|'city' - Grouping level * @returns Promise with geolocation report data */ static pixelAttributionReport(params: Record): AxiosPromise>; /** * Get an understanding of the path people take to install your game * * @param params Report options: * - title_id: string - Required title ID * - start_date?: string - Start date (YYYY-MM-DD) * - end_date?: string - End date (YYYY-MM-DD) * - group_by?: 'country'|'region'|'city' - Grouping level * @returns Promise with geolocation report data */ static installJourneyReport(params: Record): AxiosPromise>; /** * Get how the ad campaigns are performing and turning into installs * * @param params Report options: * - title_id: string - Required title ID * - start_date?: string - Start date (YYYY-MM-DD) * - end_date?: string - End date (YYYY-MM-DD) * - group_by?: 'country'|'region'|'city' - Grouping level * @returns Promise with geolocation report data */ static adCampaignPerformanceReport(params: Record): AxiosPromise>; } declare class Teams { /** * List all the teams * * @see https://api.glitch.fun/api/documentation#/Teams%20Route/teamsList * * @returns promise */ static list(params?: Record): AxiosPromise>; /** * Create a new team. * * @see https://api.glitch.fun/api/documentation#/Teams%20Route/teamCreate * * @param data The data to be passed when creating a team. * * @returns Promise */ static create(data: object, params?: Record): AxiosPromise>; /** * Update a team. * * @see https://api.glitch.fun/api/documentation#/Teams%20Route/teamUpdate * * @param team_id The id of the team to update. * @param data The data to update. * * @returns promise */ static update(team_id: string, data: object, params?: Record): AxiosPromise>; /** * Retrieve the information for a single team. * * @see https://api.glitch.fun/api/documentation#/Teams%20Route/teamShow * * @param team_id The id fo the team to retrieve. * * @returns promise */ static view(team_id: string, params?: Record): AxiosPromise>; /** * Deletes a team. * * @see https://api.glitch.fun/api/documentation#/Teams%20Route/teamDelete * * @param team_id The id of the team to delete. * @returns promise */ static delete(team_id: string, params?: Record): AxiosPromise>; /** * Updates the main image for the team using a File object. * * @see https://api.glitch.fun/api/documentation#/Teams%20Route/teamUploadMainImage * * @param file The file object to upload. * @param data Any additional data to pass along to the upload. * * @returns promise */ static uploadMainImageFile(team_id: string, file: File, data?: object): AxiosPromise>; /** * Updates the main image for the team using a Blob. * * @see https://api.glitch.fun/api/documentation#/Teams%20Route/teamUploadMainImage * * @param blob The blob to upload. * @param data Any additional data to pass along to the upload * * @returns promise */ static uploadMainImageBlob(team_id: string, blob: Blob, data?: object): AxiosPromise>; /** * Updates the banner image for the team using a File object. * * @see https://api.glitch.fun/api/documentation#/Teams%20Route/teamUploadMainImage * * @param file The file object to upload. * @param data Any additional data to pass along to the upload. * * @returns promise */ static uploadBannerImageFile(team_id: string, file: File, data?: object): AxiosPromise>; /** * Updates the banner image for the team using a Blob. * * @see https://api.glitch.fun/api/documentation#/Teams%20Route/teamUploadMainImage * * @param blob The blob to upload. * @param data Any additional data to pass along to the upload * * @returns promise */ static uploadBannerImageBlob(team_id: string, blob: Blob, data?: object): AxiosPromise>; /** * List the invites that have been sent for the team to users. * * @see https://api.glitch.fun/api/documentation#/Teams%20Route/teamsUserInviteList * * @param team_id The id of the team * * @returns promise */ static listInvites(team_id: string, params?: Record): AxiosPromise>; /** * Send an invitation to a user to join the team. * * @see https://api.glitch.fun/api/documentation#/Teams%20Route/teamSendInvite * * @param team_id The id of the team. * @param data The data that will be passed into sending an invite. * * @returns promise */ static sendInvite(team_id: string, data?: object): AxiosPromise>; /** * Accept an invite to a team. The JSON Web Token (JWT) must be related to the token. * * @see https://api.glitch.fun/api/documentation#/Teams%20Route/teamAcceptInvite * * @param team_id The id of the team * @param token The token required to accept the user. * * @returns promise */ static acceptInvite(team_id: string, token: string): AxiosPromise>; /** * List the users who are currently associated with the team. * * @see https://api.glitch.fun/api/documentation#/Teams%20Route/teamUserList * * @param team_id The id of the team. * * @returns promise */ static listUsers(team_id: string, params?: Record): AxiosPromise>; /** * Add a user to a team. * * @see https://api.glitch.fun/api/documentation#/Teams%20Route/createTeamUser * * @param team_id The id of the team. * @param data The data to be passed when adding a user. * * @returns promise */ static addUser(team_id: string, data?: object): AxiosPromise>; /** * Retrieves a single user and their information that is associated with a team. * * @see https://api.glitch.fun/api/documentation#/Teams%20Route/showTeamUser * * @param team_id The id of the team. * @param user_id The id of the user. * * @returns promise */ static getUser(team_id: string, user_id: string): AxiosPromise>; /** * Updates the users information associated with the team. * * @param team_id The id of the team. * @param user_id The id of the user. * * @returns promise */ static updatetUser(team_id: string, user_id: string, data?: object): AxiosPromise>; /** * Removes a user from a team. * * @param team_id The id of team. * @param user_id The id of the user. * * @returns promise */ static removetUser(team_id: string, user_id: string): AxiosPromise>; } declare class Waitlists { /** * List all the waitlist sign-ups. * * @see https://api.glitch.fun/api/documentation#/Waitlist%20Route/waitlistList * * @returns promise */ static list(params?: Record): AxiosPromise>; /** * Sign-up to the waitlist. * * @see https://api.glitch.fun/api/documentation#/Waitlist%20Route/waitlistCreate * * @param data The data to be passed when creating a team. * * @returns Promise */ static create(data: object, params?: Record): AxiosPromise>; /** * Update a waitlist. * * @see https://api.glitch.fun/api/documentation#/Waitlist%20Route/waitlistUpdate * * @param waitlist_id The id of the team to update. * @param data The data to update. * * @returns promise */ static update(waitlist_id: string, data: object, params?: Record): AxiosPromise>; /** * Retrieve the information for a single user who signed-up to the waitlist. * * @see https://api.glitch.fun/api/documentation#/Waitlist%20Route/waitlistUpdate * * @param waitlist_id The id fo the team to retrieve. * * @returns promise */ static view(waitlist_id: string, params?: Record): AxiosPromise>; /** * Deletes an entry from the waitlist. * * @see https://api.glitch.fun/api/documentation#/Waitlist%20Route/waitlistDelete * * @param waitlist_id The id of the team to delete. * @returns promise */ static delete(waitlist_id: string, params?: Record): AxiosPromise>; } declare class Posts { /** * List all the Posts. * * @see https://api.glitch.fun/api/documentation#/Post%20Route/resourcePostList * * @returns promise */ static list(params?: Record): AxiosPromise>; /** * Create a new post. * * @see https://api.glitch.fun/api/documentation#/Post%20Route/newPostResourceStorage * * @param data The data to be passed when creating a post. * * @returns Promise */ static create(data: object, params?: Record): AxiosPromise>; /** * Create a new post with a file. The file should either be an image or video. * * @see https://api.glitch.fun/api/documentation#/Post%20Route/newPostResourceStorage * * @param file The file object to upload. * @param data Any additional data to pass along to the upload. * * @returns promise */ static createWithFile(file: File, data?: object): AxiosPromise>; /** * Create a new post with a blob. The blob should either be an image or video. * * @see https://api.glitch.fun/api/documentation#/Post%20Route/newPostResourceStorage * * @param file The blob to upload. * @param data Any additional data to pass along to the upload. * * @returns promise */ static createWithBlob(blob: Blob, data?: object): AxiosPromise>; /** * Create a new post with a file divided into chunks. * * @param file The file object to upload. * @param chunkSize Size of each chunk in bytes. Default is 1MB. * @param data Any additional data to pass along to the upload. * * @returns Promise */ /** * Create a new post with a file divided into chunks. * * @param file The file object to upload. * @param chunkSize Size of each chunk in bytes. Default is 1MB. * @param data Any additional data to pass along to the upload. * * @returns Promise */ static createWithFileInChunks(file: File, chunkSize?: number, data?: { [key: string]: any; }): Promise>>; /** * Update a post. * * @see https://api.glitch.fun/api/documentation#/Post%20Route/updatePostStorage * * @param post_id The id of the post to update. * @param data The data to update. * * @returns promise */ static update(post_id: string, data: object, params?: Record): AxiosPromise>; /** * Retrieve the information for a single post. * * @see https://api.glitch.fun/api/documentation#/Post%20Route/showPostStorage * * @param post_id The id fo the post to retrieve. * * @returns promise */ static view(post_id: string, params?: Record): AxiosPromise>; /** * Deletes a post. * * @see https://api.glitch.fun/api/documentation#/Post%20Route/destoryPostStorage * * @param post_id The id of the post to delete. * @returns promise */ static delete(post_id: string, params?: Record): AxiosPromise>; /** * Toggle a social interaction and off for a post. * * @see hhttps://api.glitch.fun/api/documentation#/Post%20Route/postToggleInteraction * * @param data The data to be passed when toggling the interaction. * * @returns Promise */ static toggleInteraction(post_id: string, data: object, params?: Record): AxiosPromise>; /** * Join a Play Together session. */ static joinSession(post_id: string, data?: object): AxiosPromise>; /** * Follow a bug report for updates. */ static followBug(post_id: string, data?: object): AxiosPromise>; /** * Update notification preferences for a post. */ static updatePreferences(post_id: string, data: object): AxiosPromise>; /** * Leave a session or unfollow a bug. */ static leave(post_id: string): AxiosPromise>; /** * Mark a bug as resolved (Admin only). */ static resolveBug(post_id: string): AxiosPromise>; } declare class Social { /** * Give a tip to another user * * @see https://api.glitch.fun/api/documentation#/Authentication%20Route/authLogin * * @returns A promise */ static postVideoToTikTokFile(file: File, data?: object, params?: Record): AxiosPromise>; static postVideoToTikTokBlob(blob: Blob, data?: object, params?: Record): AxiosPromise>; static postVideoToFacebookGroupFile(file: File, data?: object, params?: Record): AxiosPromise>; static postVideoToFacebookGroupBlob(blob: Blob, data?: object, params?: Record): AxiosPromise>; static postVideoToTwitter(file: File, data?: object, onProgress?: (totalSize: number, amountUploaded: number) => void, params?: Record): Promise; } declare class Templates { /** * List all the templates. * * @see https://api.glitch.fun/api/documentation#/Template%20Route/resourceTemplateList * * @returns promise */ static list(params?: Record): AxiosPromise>; /** * Create a new template. * * @see https://api.glitch.fun/api/documentation#/Template%20Route/newTemplateResourceStorage * * @param data The data to be passed when creating a template. * * @returns Promise */ static create(data: object, params?: Record): AxiosPromise>; /** * Update a template. * * @see https://api.glitch.fun/api/documentation#/Template%20Route/updateTemplateStorage * * @param template_id The id of the template to update. * @param data The data to update. * * @returns promise */ static update(template_id: string, data: object, params?: Record): AxiosPromise>; /** * Retrieve the information for a single template. * * @see https://api.glitch.fun/api/documentation#/Template%20Route/showTemplateStorage * * @param template_id The id fo the template to retrieve. * * @returns promise */ static view(template_id: string, params?: Record): AxiosPromise>; /** * Deletes a template. * * @see https://api.glitch.fun/api/documentation#/Template%20Route/destoryTemplateStorage * * @param template_id The id of the template to delete. * @returns promise */ static delete(template_id: string, params?: Record): AxiosPromise>; /** * Updates the logo for the template using a File object. * * @see https://api.glitch.fun/api/documentation#/Template%20Route/uploadLogoTemplateImage * * @param file The file object to upload. * @param data Any additional data to pass along to the upload. * * @returns promise */ static uploadLogoFile(template_id: string, file: File, data?: object, params?: Record): AxiosPromise>; /** * Updates the logo for the template using a Blob. * * @see https://api.glitch.fun/api/documentation#/Template%20Route/uploadLogoTemplateImage * * @param blob The blob to upload. * @param data Any additional data to pass along to the upload * * @returns promise */ static uploadLogoBlob(template_id: string, blob: Blob, data?: object, params?: Record): AxiosPromise>; /** * Updates the main image for the template using a File object. * * @see https://api.glitch.fun/api/documentation#/Template%20Route/uploadMainTemplateImage * * @param file The file object to upload. * @param data Any additional data to pass along to the upload. * * @returns promise */ static uploadMainImageFile(template_id: string, file: File, data?: object, params?: Record): AxiosPromise>; /** * Updates the main image for the template using a Blob. * * @see https://api.glitch.fun/api/documentation#/Template%20Route/uploadMainTemplateImage * * @param blob The blob to upload. * @param data Any additional data to pass along to the upload * * @returns promise */ static uploadMainImageBlob(template_id: string, blob: Blob, data?: object, params?: Record): AxiosPromise>; } declare class Utility { /** * Get all the social interactions and emojis that are available. * * @see https://api.glitch.fun/api/documentation#/Utility%20Route/getUtilSocialInteraction * * @returns promise */ static listSocialInteractions(params?: Record): AxiosPromise>; /** * Get all the genres available on the platform. * * @see https://api.glitch.fun/api/documentation#/Utility%20Route/getUtilGenres * * @returns promise */ static listGenres(params?: Record): AxiosPromise>; /** * Get all the genders available on the platform. * * @see https://api.glitch.fun/api/documentation#/Utility%20Route/getUtilGenders * * @returns promise */ static listGenders(params?: Record): AxiosPromise>; /** * Get all the countries available on the platform. * * @see https://api.glitch.fun/api/documentation#/Utility%20Route/getUtilGenres * * @returns promise */ static listCountries(params?: Record): AxiosPromise>; /** * Get all the ethnicities available on the platform. * * @see https://api.glitch.fun/api/documentation#/Utility%20Route/getUtilGenres * * @returns promise */ static listEthnicities(params?: Record): AxiosPromise>; /** * Get all the game types available on the platform. * * @see https://api.glitch.fun/api/documentation#/Utility%20Route/getUtilTypes * * @returns promise */ static listTypes(params?: Record): AxiosPromise>; /** * Get all genres that are associated with at least one game title. * Includes the 'titles_count' property. * * @returns promise */ static listActiveGenres(params?: Record): AxiosPromise>; } declare class Tips { /** * Give a tip to another user * * @see https://api.glitch.fun/api/documentation#/Authentication%20Route/authLogin * * @returns A promise */ static give(data?: object, params?: Record): AxiosPromise>; } declare class TipEmojis { /** * Retrieve a list of emojis for tupping. * * @see https://api.glitch.fun/api/documentation#/Post%20Route/resourcePostList * * @returns promise */ static list(params?: Record): AxiosPromise>; /** * Create a new emoji to use when tipping. * * @see https://api.glitch.fun/api/documentation#/Post%20Route/newPostResourceStorage * * @param data The data to be passed when creating a post. * * @returns Promise */ static create(data: object, params?: Record): AxiosPromise>; /** * Update an emoji for tipping. * * @see https://api.glitch.fun/api/documentation#/Post%20Route/updatePostStorage * * @param type_id The id of the post to update. * @param data The data to update. * * @returns promise */ static update(type_id: string, data: object, params?: Record): AxiosPromise>; /** * Retrieve a single emoji resource to be used when tipping. * * @see https://api.glitch.fun/api/documentation#/Post%20Route/showPostStorage * * @param type_id The id fo the post to retrieve. * * @returns promise */ static view(type_id: string, params?: Record): AxiosPromise>; /** * Delete an emoji resource. * * @see https://api.glitch.fun/api/documentation#/Post%20Route/destoryPostStorage * * @param type_id The id of the post to delete. * @returns promise */ static delete(type_id: string, params?: Record): AxiosPromise>; } declare class TipPackages { /** * Retrieve a list of tip packages. * * @see https://api.glitch.fun/api/documentation#/Post%20Route/resourcePostList * * @returns promise */ static list(params?: Record): AxiosPromise>; /** * Create a new tip package. * * @see https://api.glitch.fun/api/documentation#/Post%20Route/newPostResourceStorage * * @param data The data to be passed when creating a post. * * @returns Promise */ static create(data: object, params?: Record): AxiosPromise>; /** * Update a tip package. * * @see https://api.glitch.fun/api/documentation#/Post%20Route/updatePostStorage * * @param package_id The id of the post to update. * @param data The data to update. * * @returns promise */ static update(package_id: string, data: object, params?: Record): AxiosPromise>; /** * Retrieve a single tip package resource. * * @see https://api.glitch.fun/api/documentation#/Post%20Route/showPostStorage * * @param package_id The id fo the post to retrieve. * * @returns promise */ static view(package_id: string, params?: Record): AxiosPromise>; /** * Delete a tip package. * * @see https://api.glitch.fun/api/documentation#/Post%20Route/destoryPostStorage * * @param package_id The id of the post to delete. * @returns promise */ static delete(package_id: string, params?: Record): AxiosPromise>; } declare class TipPackagePurchases { /** * Purchase a package with Stripe as the processor. * * @see https://api.glitch.fun/api/documentation#/Authentication%20Route/authLogin * * @returns A promise */ static stripe(data?: object, params?: Record): AxiosPromise>; /** * Get a stripe payment intent token. * * @see https://api.glitch.fun/api/documentation#/Authentication%20Route/authLogin * * @returns A promise */ static getStripePaymentIntent(data?: object, params?: Record): AxiosPromise>; /** * Process the stripe payment intent after payment is complete. * * @see https://api.glitch.fun/api/documentation#/Authentication%20Route/authLogin * * @returns A promise */ static processStripePaymentIntent(data?: object, params?: Record): AxiosPromise>; } declare class SocialPosts { /** * List all the Posts. * * @see https://api.glitch.fun/api/documentation#/Post%20Route/resourcePostList * * @returns promise */ static list(params?: Record): AxiosPromise>; /** * Give a tip to another user * * @see https://api.glitch.fun/api/documentation#/Authentication%20Route/authLogin * * @returns A promise */ static create(data?: object, params?: Record): AxiosPromise>; /** * Retrieve the information for a single post. * * @see https://api.glitch.fun/api/documentation#/Post%20Route/showPostStorage * * @param post_id The id fo the post to retrieve. * * @returns promise */ static view(post_id: string, params?: Record): AxiosPromise>; /** * Update the informationa bout a post, as long as it hasn't been posted. * * @see https://api.glitch.fun/api/documentation#/Post%20Route/showPostStorage * * @param post_id The id fo the post to retrieve. * * @returns promise */ static update(post_id: string, data?: object, params?: Record): AxiosPromise>; /** * Deletes a post. * * @see https://api.glitch.fun/api/documentation#/Post%20Route/destoryPostStorage * * @param post_id The id of the post to delete. * @returns promise */ static delete(post_id: string, params?: Record): AxiosPromise>; /** * Dispute a post as being fraudulent.,s * * @see https://api.glitch.fun/api/documentation#/Social%20Media%20Posts/disputePost * * @param post_id The id fo the post to retrieve. * * @returns promise */ static dispute(post_id: string, data?: object, params?: Record): AxiosPromise>; /** * Get the change of the post metrics over a period of time. * * @see https://api.glitch.fun/api/documentation#/Social%20Media%20Posts/getSocialMediaPostHistory * * @param post_id The id fo the post to retrieve. * * @returns promise */ static history(post_id: string, params?: Record): AxiosPromise>; /** * Get the change progression of a social media post over period of time. * * @see https://api.glitch.fun/api/documentation#/Social%20Media%20Posts/getSocialMediaPostHistory * * @param post_id The id fo the post to retrieve. * * @returns promise */ static progression(params?: Record): AxiosPromise>; /** * Add media to a social media post. * * @see https://api.glitch.fun/api/documentation#/Social%20Media%20Posts/addMediaToSocialMediaPost * * @param post_id The ID of the social media post. * @param data The data to be sent in the request body. * * @returns promise */ static addMedia(post_id: string, data?: object, params?: Record): AxiosPromise>; /** * Remove media from a social media post. * * @see https://api.glitch.fun/api/documentation#/Social%20Media%20Posts/removeMediaFromSocialMediaPost * * @param post_id The ID of the social media post. * @param media_id The ID of the media to remove. * * @returns promise */ static removeMedia(post_id: string, media_id: string, params?: Record): AxiosPromise>; /** * Reschedule a post that has failed. * * @see https://api.glitch.fun/api/documentation#/Social%20Media%20Posts/addMediaToSocialMediaPost * * @param post_id The ID of the social media post. * @param data The data to be sent in the request body. * * @returns promise */ static reschedule(post_id: string, data?: object, params?: Record): AxiosPromise>; /** * Get the reports for a social media post * * @see https://api.glitch.fun/api/documentation#/Post%20Route/resourcePostList * * @returns promise */ static reports(post_id: string, params?: Record): AxiosPromise>; /** * Update the information about a post impressions, for posts who API do not give view counts. * * @see https://api.glitch.fun/api/documentation#/Post%20Route/showPostStorage * * @param post_id The id fo the post to retrieve. * * @returns promise */ static updatePostImpressions(post_id: string, data?: object, params?: Record): AxiosPromise>; /** * Get reports on all the the short links * * @see https://api.glitch.fun/api/documentation#/Post%20Route/resourcePostList * * @returns promise */ static shortLinkReports(params?: Record): AxiosPromise>; /** * List comments for a social media post. * * @param post_id The ID of the social media post. * @param params Optional query parameters for filtering and sorting. * @returns A promise */ static listComments(post_id: string, params?: Record): AxiosPromise>; /** * Sync comments from the social media platform for a specific post. * * @param post_id The ID of the social media post. * @param params Optional query parameters (e.g., limit). * @returns A promise */ static syncComments(post_id: string, params?: Record): AxiosPromise>; /** * Get a list of all comments that are pending a response. * * @param params Optional query parameters for filtering. * @returns A promise */ static listPendingResponses(params?: Record): AxiosPromise>; /** * Retrieve a single comment by its ID. * * @param comment_id The ID of the comment. * @param params Optional query parameters (e.g., include_thread). * @returns A promise */ static viewComment(comment_id: string, params?: Record): AxiosPromise>; /** * Post a reply to a comment. * * @param comment_id The ID of the comment to reply to. * @param data The content of the reply. * @returns A promise */ static replyToComment(comment_id: string, data: object): AxiosPromise>; /** * Moderate a comment (approve, reject, spam, hide, show). * * @param comment_id The ID of the comment to moderate. * @param data The moderation action and optional reason. * @returns A promise */ static moderateComment(comment_id: string, data: object): AxiosPromise>; /** * Mark a comment as needing a response. * * @param comment_id The ID of the comment. * @returns A promise */ static markCommentForResponse(comment_id: string): AxiosPromise>; /** * Get the full thread for a given comment. * * @param comment_id The ID of a comment within the thread. * @returns A promise */ static getCommentThread(comment_id: string): AxiosPromise>; /** * Trigger a manual update of a comment's metrics from its platform. * * @param comment_id The ID of the comment to update. * @returns A promise */ static updateCommentMetrics(comment_id: string): AxiosPromise>; /** * Create a new top-level comment on a post. * * @param post_id The ID of the social media post to comment on. * @param data The content of the comment. * @returns A promise */ static createComment(post_id: string, data: object): AxiosPromise>; /** * Get game install attribution data for a specific social media post. * * @param post_id The ID of the social media post. * @param params Optional query parameters (start_date, end_date, confidence_threshold). * @returns A promise */ static getPostAttribution(post_id: string, params?: Record): AxiosPromise>; /** * Get a report of all social media posts for a title that are converting to game installs. * * @param params Query parameters (title_id, start_date, end_date, confidence_threshold). * @returns A promise */ static getSocialPostAttributionReport(params: Record): AxiosPromise>; /** * Get a summary of clicks for each short link in a post. * * @param post_id The ID of the social media post. * @returns A promise */ static getLinkSummary(post_id: string): AxiosPromise>; /** * Trigger a historical sync for a specific platform for the current user. * * @see https://api.glitch.fun/api/documentation#/Social%20Media%20Posts/syncHistory * * @param platform The platform to sync (e.g., 'twitter', 'youtube', 'bluesky'). * * @returns promise */ static syncHistory(platform: string, params?: Record): AxiosPromise>; /** * Perform a social action (Like, Repost, Vote) on a post. * * @param post_id The ID of the social media post. * @param action The action to perform. * @returns promise */ static performAction(post_id: string, action: 'like' | 'unlike' | 'repost' | 'unrepost' | 'vote_up' | 'vote_down' | 'unvote'): AxiosPromise>; /** * Perform a social action (Like, Repost, Vote) on a comment. * * @param comment_id The ID of the comment. * @param action The action to perform. * @returns promise */ static performCommentAction(comment_id: string, action: 'like' | 'unlike' | 'repost' | 'unrepost' | 'vote_up' | 'vote_down' | 'unvote'): AxiosPromise>; /** * Get ad creative performance matrix. */ static creativePerformance(params: Record): AxiosPromise>; /** * List social media conversations. * * @see https://api.glitch.fun/api/documentation#/Social%20Messaging/listSocialConversations * * @param params Query parameters (scheduler_id, platform, page, per_page). * @returns promise */ static listConversations(params?: Record): AxiosPromise>; /** * Sync conversations from external platform. * * @see https://api.glitch.fun/api/documentation#/Social%20Messaging/syncSocialConversations * * @param data Body parameters (platform, scheduler_id). * @returns promise */ static syncConversations(data: object): AxiosPromise>; /** * Get a specific conversation. * * @see https://api.glitch.fun/api/documentation#/Social%20Messaging/getSocialConversation * * @param conversation_id The ID of the conversation. * @returns promise */ static getConversation(conversation_id: string): AxiosPromise>; /** * List messages in a conversation. * * @see https://api.glitch.fun/api/documentation#/Social%20Messaging/listSocialMessages * * @param conversation_id The ID of the conversation. * @param params Query parameters (sync, page, per_page). * @returns promise */ static getConversationMessages(conversation_id: string, params?: Record): AxiosPromise>; /** * Send a Direct Message. * * @see https://api.glitch.fun/api/documentation#/Social%20Messaging/sendSocialMessage * * @param data Body parameters (message, conversation_id, recipient_id, platform, scheduler_id, media_ids). * @returns promise */ static sendSocialMessage(data: object): AxiosPromise>; /** * Reply to a high-intent TikTok comment via Direct Message. * * @param comment_id The ID of the comment. * @param data { message: string } */ static replyViaDm(comment_id: string, data: { message: string; }): AxiosPromise>; /** * List all discovered Reddit questions (Admin Only). * * @param params Query parameters: status, subreddit, is_question. */ static listRedditQuestions(params?: Record): AxiosPromise>; /** * Retrieve details for a specific discovered Reddit question (Admin Only). * * @param id The UUID of the question. */ static viewRedditQuestion(id: string, params?: Record): AxiosPromise>; /** * Update a Reddit question's status or metadata (Admin Only). * * @param id The UUID of the question. * @param data { status: 'pending'|'answered'|'ignored', metadata?: object } */ static updateRedditQuestion(id: string, data: object, params?: Record): AxiosPromise>; /** * Delete a discovered Reddit question (Admin Only). * * @param id The UUID of the question. */ static deleteRedditQuestion(id: string, params?: Record): AxiosPromise>; /** * Optimize a Reddit post for a specific subreddit using the AI engine (Admin Only). * * @param data { subreddit: string, content: string, title_id: string } */ static optimizeRedditPost(data: { subreddit: string; content: string; title_id: string; }): AxiosPromise>; /** * Get a report attributing game installs, wishlists, and purchases to specific social media posts. * * @param params Filter object: * - title_id: string (Required) * - start_date?: string (YYYY-MM-DD) * - end_date?: string (YYYY-MM-DD) * - confidence_threshold?: number (0-100) */ static getSocialPostAttribution(params: { title_id: string; start_date?: string; end_date?: string; confidence_threshold?: number; }): AxiosPromise>; /** * Get a report attributing game installs and revenue to specific UTM sources and campaigns. * * @param params Filter object: * - title_id: string (Required) * - start_date?: string (YYYY-MM-DD) * - end_date?: string (YYYY-MM-DD) * - confidence_threshold?: number (0-100) */ static getUtmAttribution(params: { title_id: string; start_date?: string; end_date?: string; confidence_threshold?: number; }): AxiosPromise>; static getInfluencerAttribution(params: { title_id: string; start_date?: string; end_date?: string; confidence_threshold?: number; }): AxiosPromise>; } type GameReviewRecommendation = 'recommended' | 'not_recommended' | 'neutral'; type GameReviewSentiment = 'positive' | 'mixed' | 'negative'; type GameReviewVoteType = 'helpful' | 'funny' | 'detailed' | 'not_helpful'; type GameReviewReportReason = 'abuse' | 'spam' | 'off_topic' | 'manipulation' | 'hate' | 'personal_info' | 'other'; type TitleTokenPurpose = 'install' | 'deploy' | 'hosting'; type TitleTokenAbility = 'deployments:*' | 'deployments:create' | 'deployments:read' | 'deployments:activate' | 'hosting:*' | 'hosting:read' | 'hosting:deploy' | 'hosting:promote'; interface CreateTitleTokenRequest { expires_at?: string; name?: string; purpose?: TitleTokenPurpose; abilities?: TitleTokenAbility[]; } 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; } interface CreatedTitleToken { /** Full secret value. Returned once and never retrievable again. */ full_token: string; token: TitleToken; } interface GameReviewRatings { gameplay?: GameReviewSentiment; performance?: GameReviewSentiment; value?: GameReviewSentiment; content?: GameReviewSentiment; multiplayer?: GameReviewSentiment; monetization?: GameReviewSentiment; stability?: GameReviewSentiment; localization?: GameReviewSentiment; accessibility?: GameReviewSentiment; } 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; } 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>; } declare class Campaigns { /** * List all the Campaigns. * * @see https://api.glitch.fun/api/documentation#/Campaigns/edab2e3b061347b06c82258622d239e2 * * @returns promise */ static list(params?: Record): AxiosPromise>; /** * List public influencer campaigns. * * @see https://api.glitch.fun/api/documentation#/Campaigns/getPublicCampaigns * * @returns promise */ static listPublic(params?: Record): AxiosPromise>; /** * Create a new campaign. * * @see https://api.glitch.fun/api/documentation#/Campaigns/createCampaign * * @param data The data to be passed when creating a campaign. * * @returns Promise */ static create(data: object, params?: Record): AxiosPromise>; /** * Update a campaign. * * @see https://api.glitch.fun/api/documentation#/Campaigns/updateCampaign * * @param campaign_id The id of the campaign to update. * @param data The data to update. * * @returns promise */ static update(campaign_id: string, data: object, params?: Record): AxiosPromise>; /** * Retrieve the information for a single campaign. * * @see https://api.glitch.fun/api/documentation#/Campaigns/getCampaignByUuid * * @param campaign_id The id fo the campaign to retrieve. * * @returns promise */ static view(campaign_id: string, params?: Record): AxiosPromise>; /** * Deletes a campaign. * * @see https://api.glitch.fun/api/documentation#/Campaigns/deleteCampaign * * @param campaign_id The id of the campaign to delete. * @returns promise */ static delete(campaign_id: string, params?: Record): AxiosPromise>; /** * Get the ledger for this campaign. * * @see https://api.glitch.fun/api/documentation#/Campaigns/getCampaignLedger * * @returns promise */ static getLedger(campaign_id: string, params?: Record): AxiosPromise>; /** * Get the post associated with the campaign. * * @see https://api.glitch.fun/api/documentation#/Campaigns/getCampaignLedger * * @returns promise */ static getPosts(campaign_id: string, params?: Record): AxiosPromise>; /** * Get planned influencer content for a campaign calendar. * * @param campaign_id The campaign id to retrieve calendar posts for. * @param params Optional filters such as scheduled_at_from, scheduled_at_to, status, or user_id. */ static getCampaignCalendar(campaign_id: string, params?: Record): AxiosPromise>; /** * Get the associated statistics for the campaign. * * @see https://api.glitch.fun/api/documentation#/Campaigns/campaignStatistics * * @returns promise */ static statistics(campaign_id: string, params?: Record): AxiosPromise>; /** * Get the stream view counts for the campaign. * * @see https://api.glitch.fun/api/documentation#/Campaigns/getCampaignStreamViewCounts * * @returns promise */ static getStreamViewCounts(campaign_id: string, params?: Record): AxiosPromise>; /** * Retrieve recommended influencers for a campaign. * * @see https://api.glitch.fun/api/documentation#/Campaigns/recommendInfluencers * * @returns promise */ static getRecommendedInfluencers(campaign_id: string, params?: Record): AxiosPromise>; /** * List all the campaign links. * * @see https://api.glitch.fun/api/documentation#/Campaigns/getCampaignLinks * * @returns promise */ static listCampaignLinks(campaign_id: string, params?: Record): AxiosPromise>; /** * List all the campaign links. * * @see https://api.glitch.fun/api/documentation#/Campaigns/getCampaignLinks * * @returns promise */ static listInfluencerCampaignLinkClicks(campaign_id: string, user_id: string, params?: Record): AxiosPromise>; /** * Create a new campaign link. * * @see https://api.glitch.fun/api/documentation#/Campaigns/storeCampaignLink * * @param data The data to be passed when creating a campaign. * * @returns Promise */ static createCampaignLink(campaign_id: string, data: object, params?: Record): AxiosPromise>; /** * Update a campaign. * * @see https://api.glitch.fun/api/documentation#/Campaigns/1bb1492981b4529693604b03aade8bf6 * * @param campaign_id The id of the campaign to update. * @param data The data to update. * * @returns promise */ static updateCampaignLink(campaign_id: string, link_id: string, data: object, params?: Record): AxiosPromise>; /** * Delete a campaign link. * * @see https://api.glitch.fun/api/documentation#/Campaigns/deleteCampaignLink * * @param campaign_id The id of the campaign to update. * @param link_id The id of the campaign link to delete. * * @returns promise */ static deleteCampaignLink(campaign_id: string, link_id: string, params?: Record): AxiosPromise>; /** * Retrieve the information for a single campaign. * * @see https://api.glitch.fun/api/documentation#/Campaigns/getCampaignLink * * @param campaign_id The id fo the campaign to retrieve. * * @returns promise */ static getCampaignLink(campaign_id: string, link_id: string, params?: Record): AxiosPromise>; /** * List all the influencers associated with a campaign. * * @see https://api.glitch.fun/api/documentation#/Campaigns/getInfluencerCampaigns * * @returns promise */ static listInfluencerCampaigns(params?: Record): AxiosPromise>; /** * List planned influencer content across the authenticated influencer's accepted campaigns. */ static getInfluencerCalendar(params?: Record): AxiosPromise>; /** * Create an influencer campaign * * @see https://api.glitch.fun/api/documentation#/Campaigns/6d834c837c5f330d6a4cef5786c45c90 * * @param data The data to be passed when creating a campaign. * * @returns Promise */ static createInfluencerCampaign(campaign_id: string, user_id: string, data: object, params?: Record): AxiosPromise>; /** * Update an influencer campaign. * * @see https://api.glitch.fun/api/documentation#/Campaigns/updateInfluencerCampaign * * @param campaign_id The id of the campaign to update. * @param data The data to update. * * @returns promise */ static updateInfluencerCampaign(campaign_id: string, user_id: string, data: object, params?: Record): AxiosPromise>; /** * Delete an influencer campaign relationship. * * The backend route currently exists, but the controller destroy implementation is intentionally * treated as an agent/admin stop-gate because removal can orphan posts, payouts, or contracts. */ static deleteInfluencerCampaign(campaign_id: string, user_id: string, params?: Record): AxiosPromise>; /** * Retrieve the information for a single campaign. * * @see https://api.glitch.fun/api/documentation#/Campaigns/showInfluencerCampaign * * @param campaign_id The id fo the campaign to retrieve. * * @returns promise */ static viewInfluencerCampaign(campaign_id: string, user_id: string, params?: Record): AxiosPromise>; /** * Create or update planned campaign content for an influencer. * * @param campaign_id The campaign id. * @param user_id The influencer user id. * @param data The posts payload. */ static saveInfluencerCalendarPosts(campaign_id: string, user_id: string, data: object, params?: Record): AxiosPromise>; /** * Mark an influencer campaign as completed. * * @see https://api.glitch.fun/api/documentation#/Campaigns/markCompleted * * @param data The data to be passed when creating a campaign. * * @returns Promise */ static markInfluencerCampaignComplete(campaign_id: string, user_id: string, data: object, params?: Record): AxiosPromise>; /** * Mark an influencer campaign as incomplete. * * @see https://api.glitch.fun/api/documentation#/Campaigns/afffdc7a0c7fc4d9740f10517c53933e * * @param data The data to be passed when creating a campaign. * * @returns Promise */ static markInfluencerCampaignIncomplete(campaign_id: string, user_id: string, data: object, params?: Record): AxiosPromise>; /** * Get all the links associated with an influencer's campaign. * * @see https://api.glitch.fun/api/documentation#/Campaigns/edab2e3b061347b06c82258622d239e2 * * @returns promise */ static listInfluencerCampaignLinks(campaign_id: string, user_id: string, params?: Record): AxiosPromise>; /** * List all the campaign mentions. * * @see https://api.glitch.fun/api/documentation#/Campaigns/getCampaignLinks * * @returns promise */ static listCampaignMentions(campaign_id: string, params?: Record): AxiosPromise>; /** * Create a new campaign mention. * * @see https://api.glitch.fun/api/documentation#/Campaigns/storeCampaignLink * * @param data The data to be passed when creating a campaign. * * @returns Promise */ static createCampaignMention(campaign_id: string, data: object, params?: Record): AxiosPromise>; /** * Update a campaign mention. * * @see https://api.glitch.fun/api/documentation#/Campaigns/1bb1492981b4529693604b03aade8bf6 * * @param campaign_id The id of the campaign to update. * @param data The data to update. * * @returns promise */ static updateCampaignMention(campaign_id: string, mention_id: string, data: object, params?: Record): AxiosPromise>; /** * Retrieve the information for a single campaign mention. * * @see https://api.glitch.fun/api/documentation#/Campaigns/getCampaignLink * * @param campaign_id The id fo the campaign to retrieve. * * @returns promise */ static getCampaignMention(campaign_id: string, mention_id: string, params?: Record): AxiosPromise>; /** * Delete the information for a single campaign mention. * * @see https://api.glitch.fun/api/documentation#/Campaigns/getCampaignLink * * @param campaign_id The id fo the campaign to retrieve. * * @returns promise */ static deleteCampaignMention(campaign_id: string, mention_id: string, params?: Record): AxiosPromise>; /** * Associate a country with the campaign. * * @see https://api.glitch.fun/api/documentation#/Campaigns/addCountryToCampaign * * @param data The country information to be passed to update the country campaigns information. * * @returns Promise */ static addCountry(campaign_id: string, data: object, params?: Record): AxiosPromise>; /** * Remove a country * * @see https://api.glitch.fun/api/documentation#/Campaigns/removeCountry * * @param country_id The id of the country to remove. * * @returns Promise */ static removeCountry(campaign_id: string, country_id: string, params?: Record): AxiosPromise>; /** * Associate a gender with the campaign. * * @see https://api.glitch.fun/api/documentation#/Campaigns/addGenderToCampaign * * @param data The gener information to be passed to update the gender information. * * @returns Promise */ static addGender(campaign_id: string, data: object, params?: Record): AxiosPromise>; /** * Remove a gender * * @see https://api.glitch.fun/api/documentation#/Campaigns/removeGender * * @param gender_id The id of the gender to remove. * * @returns Promise */ static removeGender(campaign_id: string, gender_id: string, params?: Record): AxiosPromise>; /** * Associate an ethnicity with the campaign. * * @see https://api.glitch.fun/api/documentation#/Campaigns/addGenderToCampaign * * @param data The ethnicity information to be passed to update the campaign information. * * @returns Promise */ static addEthnicity(campaign_id: string, data: object, params?: Record): AxiosPromise>; /** * Remove an ethnicity * * @see https://api.glitch.fun/api/documentation#/Campaigns/removeGender * * @param gender_id The id of the ethnicity to remove. * * @returns Promise */ static removeEthnicity(campaign_id: string, ethnicity_id: string, params?: Record): AxiosPromise>; /** * Associate a type with the campaign. * * @see https://api.glitch.fun/api/documentation#/Campaigns/addGenderToCampaign * * @param data The type information to be passed to update the campaign information. * * @returns Promise */ static addType(campaign_id: string, data: object, params?: Record): AxiosPromise>; /** * Remove an type * * @see https://api.glitch.fun/api/documentation#/Campaigns/removeGender * * @param type_id The id of the ethnicity to remove. * * @returns Promise */ static removeType(campaign_id: string, type_id: string, params?: Record): AxiosPromise>; /** * Get a list of influencer invites that have been sent for this campaign. * * @see https://api.glitch.fun/api/documentation#/Campaigns/getInfluencerInvites * * @param campaign_id The id fo the campaign to retrieve. * * @returns promise */ static listInfluencerInvites(campaign_id: string, params?: Record): AxiosPromise>; /** * Invites an influencer to join this campaign. * * @see https://api.glitch.fun/api/documentation#/Campaigns/inviteInfluencer * * @param campaign_id The id fo the campaign to retrieve. * * @returns promise */ static sendInfluencerInvite(campaign_id: string, data: object, params?: Record): AxiosPromise>; /** * Get creator context used when preparing a personalized invite. */ static creatorInviteContext(campaign_id: string, params?: Record): AxiosPromise>; /** * Send a personalized creator invite after review. */ static sendCreatorInvite(campaign_id: string, data: object, params?: Record): AxiosPromise>; /** * Invites an influencer to join this campaign. * * @see https://api.glitch.fun/api/documentation#/Campaigns/getInfluencerInvite * * @param campaign_id The id fo the campaign to retrieve. * * @returns promise */ static viewInfluencerInvite(campaign_id: string, influencer_id: string, token: string, params?: Record): AxiosPromise>; /** * Updates the influencer invite information. * * @see https://api.glitch.fun/api/documentation#/Campaigns/updateInfluencerInvite * * @param campaign_id The id fo the campaign to retrieve. * * @returns promise */ static updateInfluencerInvite(campaign_id: string, influencer_id: string, data: object, params?: Record): AxiosPromise>; /** * Updates the influencer invite compenstation information. * * @see https://api.glitch.fun/api/documentation#/Campaigns/updateInfluencerCompensationInvite * * @param campaign_id The id fo the campaign to retrieve. * * @returns promise */ static updateInfluencerCompensationInvite(campaign_id: string, influencer_id: string, data: object, params?: Record): AxiosPromise>; /** * The route for an influencer to accept an invite. * * @see https://api.glitch.fun/api/documentation#/Campaigns/acceptInfluencerInvite * * @param campaign_id The id fo the campaign to retrieve. * * @returns promise */ static acceptInfluencerInvite(campaign_id: string, influencer_id: string, data?: object, params?: Record): AxiosPromise>; /** * The route for an influencer to decline an invite. * * @see https://api.glitch.fun/api/documentation#/Campaigns/delinceInfluencerInvite * * @param campaign_id The id fo the campaign to retrieve. * * @returns promise */ static declineInfluencerInvite(campaign_id: string, influencer_id: string, data?: object, params?: Record): AxiosPromise>; /** * The route for an influencer to decline an invite. * * @see https://api.glitch.fun/api/documentation#/Campaigns/withdrawInfluencerInvite * * @param campaign_id The id fo the campaign to retrieve. * * @returns promise */ static widthdrawInfluencerInvite(campaign_id: string, influencer_id: string, data?: object, params?: Record): AxiosPromise>; /** Correctly-spelled alias retained alongside the legacy method name. */ static withdrawInfluencerInvite(campaign_id: string, influencer_id: string, data?: object, params?: Record): AxiosPromise>; /** * The route to mark an influencer reachout and finished, and it will no longer send reachouts. * * @see https://api.glitch.fun/api/documentation#/Campaigns/finishInfluencerInvite * * @param campaign_id The id fo the campaign to retrieve. * * @returns promise */ static finishInfluencerInvite(campaign_id: string, influencer_id: string, data?: object, params?: Record): AxiosPromise>; /** * The route to accept an influnecers request to join the campaign. * * @see https://api.glitch.fun/api/documentation#/Campaigns/acceptInfluencer * * @param campaign_id The id fo the campaign to retrieve. * * @returns promise */ static acceptInfluencerRequest(campaign_id: string, user_id: string, data?: object, params?: Record): AxiosPromise>; /** * The route to deny an influencer request to join the campaign. * * @see https://api.glitch.fun/api/documentation#/Campaigns/denyInfluencer * * @param campaign_id The id fo the campaign to retrieve. * * @returns promise */ static declineInfluencerRequest(campaign_id: string, user_id: string, data?: object, params?: Record): AxiosPromise>; /** * The route the route to mark the influencers request as in review. * * @see https://api.glitch.fun/api/documentation#/Campaigns/reviewInfluencer * * @param campaign_id The id fo the campaign to retrieve. * * @returns promise */ static reviewInfluencerRequest(campaign_id: string, user_id: string, data?: object, params?: Record): AxiosPromise>; /** * Generate post content for the influencer to help them with their content creation. * * @see https://api.glitch.fun/api/documentation#/Campaigns/generatePostContent * * @param campaign_id The id fo the campaign to retrieve. * * @returns promise */ static generateContentForInfluencer(campaign_id: string, user_id: string, data?: object, params?: Record): AxiosPromise>; /** * Get a list of all active campaigns. * * @see https://api.glitch.fun/api/documentation#/Campaigns/getActiveCampaignLinks * * @returns promise */ static getActiveCampaignLinks(params?: Record): AxiosPromise>; /** * Generate a contract for the influencer based on the values in the invite. * * @see https://api.glitch.fun/api/documentation#/Campaigns/generateInfluencerContract * * @param campaign_id The id fo the campaign to retrieve. * * @returns promise */ static generateContractFromInvite(campaign_id: string, influencer_id: string, data?: object, params?: Record): AxiosPromise>; /** * Send a contract with Docusign. * * @see https://api.glitch.fun/api/documentation#/Campaigns/sendContractWithDocusign * * @param campaign_id The id fo the campaign to retrieve. * * @returns promise */ static sendContractWithDocusign(campaign_id: string, influencer_id: string, data?: object, params?: Record): AxiosPromise>; /** * Resend the acceptance email for the influencer. * * @see https://api.glitch.fun/api/documentation#/Campaigns/resendInfluencerAcceptance * * @param campaign_id The id fo the campaign to retrieve. * * @returns promise */ static resendAcceptanceEmail(campaign_id: string, user_id: string, data?: object, params?: Record): AxiosPromise>; /** * Pay the influencer a custom amount for the campaign. * * @see https://api.glitch.fun/api/documentation#/Campaigns/payInfluencer * * @param campaign_id The id fo the campaign to retrieve. * * @returns promise */ static payInfluencer(campaign_id: string, user_id: string, data?: object, params?: Record): AxiosPromise>; /** * Get the ledger for this campaign. * * @see https://api.glitch.fun/api/documentation#/Campaigns/getCampaignPayouts * * @returns promise */ static listPayouts(campaign_id: string, params?: Record): AxiosPromise>; /** * Generate a contract for the influencer based on the values in the campaign. * * @see https://api.glitch.fun/api/documentation#/Campaigns/generateCampaignContract * * @param campaign_id The id fo the campaign to retrieve. * * @returns promise */ static generateCampaignContract(campaign_id: string, user_id: string, data?: object, params?: Record): AxiosPromise>; /** * Send a contract with Docusign. * * @see https://api.glitch.fun/api/documentation#/Campaigns/sendCampaignContractWithDocusign * * @param campaign_id The id fo the campaign to retrieve. * * @returns promise */ static sendCampaignContractWithDocusign(campaign_id: string, user_id: string, data?: object, params?: Record): AxiosPromise>; /** * Search IGDB for the campaign's game. * @param campaign_id The UUID of the campaign. * @param params Query parameters (e.g., search_query, limit). * @returns promise */ static sourcingSearchIgdbForCampaignGame(campaign_id: string, params?: Record): AxiosPromise>; /** * Find popular similar games from IGDB. * @param campaign_id The UUID of the campaign. * @param params Query parameters (e.g., igdb_id, limit). * @returns promise */ static sourcingGetSimilarIgdbGames(campaign_id: string, params: Record): AxiosPromise>; /** * Find content creators for selected games. This does not save them to the database. * @param campaign_id The UUID of the campaign. * @param data The search criteria (source, igdb_ids, etc.). * @returns promise */ static sourcingFindCreators(campaign_id: string, data: object): AxiosPromise>; /** * Update campaign sourcing settings. * @param campaign_id The UUID of the campaign. * @param data The settings to update (igdb_id, similar_game_igdb_ids, etc.). * @returns promise */ static updateSourcingSettings(campaign_id: string, data: object): AxiosPromise>; /** * Find and save content creators for selected games to the database. * @param campaign_id The UUID of the campaign. * @param data The search criteria (source, igdb_ids, etc.). * @returns promise */ static sourcingFindAndSaveCreators(campaign_id: string, data: object): AxiosPromise>; /** * Get sourced creators for a campaign from the database. * @param campaign_id The UUID of the campaign. * @param params Query parameters for filtering, sorting, and pagination. * @returns promise */ static getSourcedCreators(campaign_id: string, params?: Record): AxiosPromise>; /** * Get a single sourced creator. * @param campaign_id The UUID of the campaign. * @param sourced_creator_id The UUID of the sourced creator. * @returns promise */ static getSourcedCreator(campaign_id: string, sourced_creator_id: string): AxiosPromise>; /** * Update a sourced creator (e.g., approve or reject). * @param campaign_id The UUID of the campaign. * @param sourced_creator_id The UUID of the sourced creator to update. * @param data The update data (e.g., is_approved, is_rejected). * @returns promise */ static updateSourcedCreator(campaign_id: string, sourced_creator_id: string, data: object): AxiosPromise>; /** * Assigns an available access key to an influencer for a specific campaign. * This will find the next available key for the given platform and assign it. * * @see https://api.glitch.fun/api/documentation#/Campaigns/assignKey * * @param campaign_id The ID of the campaign. * @param user_id The ID of the user (influencer). * @param data The platform for which to assign a key. * @param data.platform The platform of the key to assign (e.g., 'steam'). * @returns promise */ static assignKeyToInfluencer(campaign_id: string, user_id: string, data: { platform: string; }, params?: Record): AxiosPromise>; /** * Manually trigger a real-time profile enrichment for a sourced creator. * This synchronously scrapes and parses social media profiles to enrich the creator's data and returns the updated record. * * @see https://api.glitch.fun/api/documentation#/Campaigns%20Sourcing/enrichSourcedCreator * * @param campaign_id The UUID of the campaign. * @param sourced_creator_id The UUID of the sourced creator to enrich. * @returns promise containing the fully enriched SourcedCreator object. */ static enrichSourcedCreator(campaign_id: string, sourced_creator_id: string): AxiosPromise>; /** * Find and save Twitch creators for selected games to the database. * @param campaign_id The UUID of the campaign. * @param data The search criteria (source, igdb_ids, etc.). * @returns promise */ static sourcingFindAndSaveTwitchCreators(campaign_id: string, data: object): AxiosPromise>; /** * Find and save YouTube creators for selected games to the database. * @param campaign_id The UUID of the campaign. * @param data The search criteria (igdb_ids, period). * @returns promise */ static sourcingFindAndSaveYouTubeCreators(campaign_id: string, data: object): AxiosPromise>; /** * Export sourced creators for a campaign to a CSV or XLSX file. * This method applies the same filtering and sorting parameters as getSourcedCreators. * The browser will automatically trigger a download for the returned file. * * @see https://api.glitch.fun/api/documentation#/Campaigns%20Sourcing/exportSourcedCreators * * @param campaign_id The UUID of the campaign. * @param params Query parameters for the export, including the required 'format' and any filters. * @param params.format The desired file format ('csv' or 'xlsx'). * @param params.search Optional search term. * @param params.status Optional status filter ('pending', 'approved', 'rejected'). * @param params.has_email Optional filter for creators with an email address (true/false). * @returns A promise that resolves with the file blob for download. */ static exportSourcedCreators(campaign_id: string, params: { format: 'csv' | 'xlsx'; [key: string]: any; }): AxiosPromise>; /** * Search IGDB for any game by a query string. * @param campaign_id The UUID of the campaign (for permission checking). * @param params Query parameters including 'search_query' and optional 'limit'. * @returns promise */ static sourcingSearchAnyIgdbGame(campaign_id: string, params: { search_query: string; limit?: number; }): AxiosPromise>; /** * Get full game details from a list of IGDB IDs. * @param campaign_id The UUID of the campaign. * @param data An object containing the array of IGDB IDs. * @param data.igdb_ids An array of IGDB game IDs. * @returns promise */ static sourcingGetGamesByIds(campaign_id: string, data: { igdb_ids: number[]; }): AxiosPromise>; /** * Get full game details from a list of IGDB IDs. * @param campaign_id The UUID of the campaign. * @param data An object containing the array of IGDB IDs. * @param data.igdb_ids An array of IGDB game IDs. * @returns promise */ static updateAutoInviteCriteria(campaign_id: string, data: object): AxiosPromise>; static updateCustomRanking(campaign_id: string, data: object): AxiosPromise>; static updateCreatorBucket(campaign_id: string, creator_id: string, data: object): AxiosPromise>; static reRankSourcedCreators(campaign_id: string, data: object): AxiosPromise>; /** * Queue multiple sourced creators for profile enrichment. * This dispatches a background job for each creator to find their social media profiles and contact information. * * @param campaign_id The UUID of the campaign. * @param data An object containing the array of SourcedCreator IDs to enrich. * @param data.creator_ids An array of SourcedCreator UUIDs. * @returns A promise that resolves with a confirmation message and the count of queued jobs. */ static bulkEnrichSourcedCreators(campaign_id: string, data: { creator_ids: string[]; }): AxiosPromise>; /** * Get install attribution breakdown by influencer. * * @see https://api.glitch.fun/api/documentation#/Campaigns/getInfluencerInstallReport * * @param campaign_id The UUID of the campaign. * @param params Optional query parameters (start_date, end_date). * @returns promise */ static getInfluencerInstallReport(campaign_id: string, params?: Record): AxiosPromise>; /** * Get detailed install report for a specific influencer. * Accessible by Campaign Owners and the specific Influencer. * * @param campaign_id The UUID of the campaign. * @param influencer_id The UUID of the influencer. * @param params Optional query parameters (start_date, end_date). * @returns promise */ static getSpecificInfluencerInstallReport(campaign_id: string, influencer_id: string, params?: Record): AxiosPromise>; /** * Generate AI Landing Page for an Influencer Campaign. */ static generateInfluencerLandingPage(campaign_id: string, user_id: string, data: { prompt: string; privacy_mode: string; }): AxiosPromise>; /** * Update settings for the Influencer Landing Page. */ static updateInfluencerLandingPage(campaign_id: string, user_id: string, data: { is_landing_page_active?: boolean; landing_page_slug?: string; }): AxiosPromise>; /** * Export influencer invites to CSV. * * @param campaign_id The UUID of the campaign. * @param data Filters for the export (stages, status). */ static exportInfluencerInvites(campaign_id: string, data: { stages?: string[]; status?: string; }): AxiosPromise>; /** * Find and save Fansly creators for a specific campaign. * * @see CampaignCreatorSourcingController@findAndSaveFanslyCreators * * @param campaign_id The UUID of the campaign. * @param data Parameters for sourcing. * @param data.query The search term (e.g., 'gaming', 'cosplay'). Defaults to 'gaming'. * @param data.pages Number of pages to crawl (25 results per page). Defaults to 10. * @returns promise */ static sourcingFindAndSaveFanslyCreators(campaign_id: string, data: { query?: string; pages?: number; }): AxiosPromise>; static sendOnboarding(campaign_id: string, user_id: string, data?: { template_id?: string; }): AxiosPromise>; /** * Bulk invite influencers from a previous campaign into the current one. * * @param campaign_id The UUID of the target campaign. * @param data { source_campaign_id: string, only_successful: boolean } */ static crossPromote(campaign_id: string, data: { source_campaign_id: string; only_successful?: boolean; }): AxiosPromise>; } declare class Subscriptions { /** * Get a creator subscription for the creator program. * * @see https://api.glitch.fun/api/documentation#/Subscriptions/getCreatorSubscription * * @returns promise */ static getCreatorSubscription(stripe_subscription_id: string, params?: Record): AxiosPromise>; /** * Get a s subscription plan that a community has to talk with influencers * * @see https://api.glitch.fun/api/documentation#/Subscriptions/getCommunityInfluencerSubscription * * @returns promise */ static getCommunityInfluencerSubscription(community_id: string, stripe_subscription_id: string, params?: Record): AxiosPromise>; /** * List all the subscription plans that a creator has. * * @see https://api.glitch.fun/api/documentation#/Subscriptions/getCreatorSubscriptions * * @returns promise */ static listCreatorSubscriptions(params?: Record): AxiosPromise>; /** * List all the subscription plans that a community has. * * @see https://api.glitch.fun/api/documentation#/Subscriptions/getCommunityInfluencerSubscriptions * * @returns promise */ static listCommunityInfluencerSubscriptions(community_id: string, params?: Record): AxiosPromise>; /** * Check whether the current user can access developer tool creation for a feature. * * @param params { feature: 'social_media'|'influencers'|'ads', community_id?: string, title_id?: string, scheduler_id?: string } * @returns promise */ static getDeveloperToolAccess(params?: Record): AxiosPromise>; /** * Create a new subscription of a content creator * * @see https://api.glitch.fun/api/documentation#/Subscriptions/createCreatorSubscription * * @returns A promise */ static createCreatorSubscription(data?: object, params?: Record): AxiosPromise>; /** * Create a new subscription of a community engaging in influencer marketing * * @see https://api.glitch.fun/api/documentation#/Subscriptions/createCommunityInfluencerSubscription * * @returns A promise */ static createCommunityInfluencerSubscription(community_id: string, data?: object, params?: Record): AxiosPromise>; /** * Cancels a creator subscription * * @see https://api.glitch.fun/api/documentation#/Subscriptions/cancelCreatorSubscription * * @returns A promise */ static cancelCreatorSubscription(stripe_subscription_id: string, data?: object, params?: Record): AxiosPromise>; /** * Cancels a community subscription * * @see https://api.glitch.fun/api/documentation#/Subscriptions/cancelCommunityInfluencerSubscription * * @returns A promise */ static cancelCommunityInfluencerSubscription(community_id: string, stripe_subscription_id: string, data?: object, params?: Record): AxiosPromise>; /** * Change the current subscription that the community is associated with. * * @see https://api.glitch.fun/api/documentation#/Subscriptions/createCreatorSubscription * * @returns A promise */ static changeCommunityInfluencerSubscription(community_id: string, data?: object, params?: Record): AxiosPromise>; /** * Create a custom tailored subscription for a business/community. * Only accessible by Glitch administrators. * * @param community_id The ID of the community. * @param data { priceId, paymentMethod, custom_name, limits: { posts, enrichments, invites, ads }, metered_prices: [] } */ static createCustomCommunitySubscription(community_id: string, data: object, params?: Record): AxiosPromise>; /** * Purchase a permanent license or rent a game title. * If a rental was active in the last 7 days, the fee is automatically deducted from the premium price. * @param data { purchase_type: 'premium' | 'rental', payment_method_id: string } */ static purchaseLicense(title_id: string, data: object): AxiosPromise>; /** * List all game licenses (Premium/Rental) owned by the current user. */ static listMyLicenses(params?: Record): AxiosPromise>; /** * Request a refund for a premium purchase. */ static refundLicense(license_id: string): AxiosPromise>; /** * Purchase a game or subscription as a gift for another user. * * @see https://api.glitch.fun/api/documentation#/Subscriptions/purchaseGift * * @param data { gift_type: 'premium'|'rental'|'subscription', payment_method_id: string, title_id?: string, recipient_id?: string, recipient_email?: string, recipient_name?: string } * @returns promise */ static purchaseGift(data: object): AxiosPromise>; /** * Redeem a gift code to grant access to a game or subscription. * * @see https://api.glitch.fun/api/documentation#/Subscriptions/redeemGift * * @param redemption_code The unique GLITCH-XXXX-XXXX code. * @returns promise */ static redeemGift(redemption_code: string): AxiosPromise>; /** * Cancel an unredeemed gift and trigger a refund. * Only the user who purchased the gift (the giver) can perform this action. * * @see https://api.glitch.fun/api/documentation#/Subscriptions/cancelGift * * @param gift_id The UUID of the gift to cancel. * @returns promise */ static cancelGift(gift_id: string): AxiosPromise>; /** * Validates a coupon code and returns the calculated discount. * @param data { code: string, price: number, currency?: string } */ static validateCoupon(data: { code: string; price: number; currency?: string; }): AxiosPromise>; } declare class Messages { /** * Get all the message threads that a user has particpated in. * * @see https://api.glitch.fun/api/documentation#/Messages/getConversations * * @returns promise */ static listMessageThreads(params?: Record): AxiosPromise>; /** * Send a new message that will be added to a thread. Festival-scoped threads * enforce current admission, blocking and read-only state server-side. * Include an optional client_message_id UUID and reuse it when retrying a * timed-out request to prevent duplicate messages and notifications. * * @see https://api.glitch.fun/api/documentation#/Messages/storeMessage * * @returns A promise */ static sendMessage(data?: object, params?: Record): AxiosPromise>; /** * Updates a message. * * @see https://api.glitch.fun/api/documentation#/Messages/updateMessage * * @returns A promise */ static updateMessage(message_id: string, data?: object, params?: Record): AxiosPromise>; /** * Deletes a message. * * @see https://api.glitch.fun/api/documentation#/Messages/destroyMessage * * @returns A promise */ static deleteMessage(message_id: string, data?: object, params?: Record): AxiosPromise>; /** * A message thread is a thread between multiple users. Pass the user ids in the thread and it will either * get the current thread or create a new thread. * * @see https://api.glitch.fun/api/documentation#/Messages/conversations * * @returns A promise */ static createOrGetThread(data?: object, params?: Record): AxiosPromise>; /** * Get a single thread. * * @see https://api.glitch.fun/api/documentation#/Messages/getThread * * @returns promise */ static getThread(thread_id: string, params?: Record): AxiosPromise>; } declare class Feedback { /** * List all the feedback that been left by users. * * @see https://api.glitch.fun/api/documentation#/Feedback/listFeedback * * @returns promise */ static listFeedback(params?: Record): AxiosPromise>; /** * View a particular item of feedback. * * @see https://api.glitch.fun/api/documentation#/Feedback/getFeedbackById * * @returns promise */ static viewFeedback(feedback_id: string, params?: Record): AxiosPromise>; /** * List support tickets owned by the logged-in user. */ static listSupportTickets(params?: Record): AxiosPromise>; /** * Create a support ticket for the logged-in user. */ static createSupportTicket(data?: object, params?: Record): AxiosPromise>; /** * View a support ticket owned by the logged-in user. */ static viewSupportTicket(feedback_id: string, params?: Record): AxiosPromise>; /** * Reply to a support ticket owned by the logged-in user. */ static replySupportTicket(feedback_id: string, data?: object, params?: Record): AxiosPromise>; /** * Admin support inbox covering support tickets and feedback. */ static adminListFeedback(params?: Record): AxiosPromise>; static adminViewFeedback(feedback_id: string, params?: Record): AxiosPromise>; static adminUpdateFeedback(feedback_id: string, data?: object, params?: Record): AxiosPromise>; static adminReplyFeedback(feedback_id: string, data?: object, params?: Record): AxiosPromise>; static adminRewardFeedback(feedback_id: string, data?: object, params?: Record): AxiosPromise>; /** * Submit feedback. * * @see https://api.glitch.fun/api/documentation#/Feedback/a64fe3d6f90ed1af5bbd5311a795c134 * * @returns A promise */ static sendFeedback(data?: object, params?: Record): AxiosPromise>; /** * Submit feedback with the log file as a file. * * @see https://api.glitch.fun/api/documentation#/Feedback/a64fe3d6f90ed1af5bbd5311a795c134 * * @param file The file object to upload. * @param data Any additional data to pass along to the upload. * * @returns promise */ static sendFeedbackWithFile(file: File, data?: object, params?: Record): AxiosPromise>; /** * Submit feedback with the log file as a blob. * * @see hhttps://api.glitch.fun/api/documentation#/Feedback/a64fe3d6f90ed1af5bbd5311a795c134 * * @param blob The blob to upload. * @param data Any additional data to pass along to the upload * * @returns promise */ static sendFeedbackWithBlob(blob: Blob, data?: object, params?: Record): AxiosPromise>; } declare class Influencers { /** * Add a new influencer to the platform. * * @see https://api.glitch.fun/api/documentation#/Influencers/createInfluencersNotes * * @returns promise */ static addInfluencer(data?: object, params?: Record): AxiosPromise>; /** * Get a list of influencers available on he platform. * * @see https://api.glitch.fun/api/documentation#/Influencers/getInfluencers * * @returns promise */ static listInfluencers(params?: Record): AxiosPromise>; /** * Retrieve information on a single influencer. * * @see https://api.glitch.fun/api/documentation#/Influencers/getInfluencerById * * @returns promise */ static viewInfluencer(influencer_id: string, params?: Record): AxiosPromise>; /** * Generate a profile for an influencer based on their data. * * @see https://api.glitch.fun/api/documentation#/Influencers/generateInfluencerProfile * * @returns promise */ static generateProfile(influencer_id: string, params?: Record): AxiosPromise>; /** * List all the notes left about an influencer. * * @see https://api.glitch.fun/api/documentation#/Influencers/getInfluencersNotes * * @returns promise */ static listNotes(influencer_id: string, params?: Record): AxiosPromise>; /** * View a note left about an influencer. * * @see https://api.glitch.fun/api/documentation#/Influencers/getInfluencersNote * * @returns promise */ static viewNote(influencer_id: string, note_id: string, params?: Record): AxiosPromise>; /** * Create a new note about an influencer. * * @see https://api.glitch.fun/api/documentation#/Influencers/createInfluencersNotes * * @returns promise */ static createNote(influencer_id: string, data?: object, params?: Record): AxiosPromise>; /** * Update a note about an influencer. * * @see https://api.glitch.fun/api/documentation#/Influencers/updateInfluencersNote * * @returns promise */ static updateNote(influencer_id: string, note_id: string, data?: object, params?: Record): AxiosPromise>; /** * Delete a note about an influencer. * * @see https://api.glitch.fun/api/documentation#/Influencers/deleteInfluencersNote * * @returns promise */ static deleteNote(influencer_id: string, note_id: string, data?: object, params?: Record): AxiosPromise>; /** * Get a list of contracts associated with an influencer. * * @see https://api.glitch.fun/api/documentation#/Influencers/getInfluencers * * @returns promise */ static listContracts(params?: Record): AxiosPromise>; /** * Download the influencer work * * @see https://api.glitch.fun/api/documentation#/Influencers/downloadInfluencersWorkbook * * @returns promise */ static workbook(data?: object, params?: Record): AxiosPromise>; } /** * Interface for the Release Stats response to help developers * understand the data structure returned by the optimizer. */ interface ReleaseStatEntry { date: string; count: number; intensity: 'low' | 'medium' | 'high' | 'extreme'; is_danger_zone: boolean; recommendation: string; events: Array<{ name: string; type: 'nextfest' | 'sale'; start: string; end: string; }>; } interface ReleaseStatsResponse { data: ReleaseStatEntry[]; meta: { user_status: 'authenticated' | 'guest'; lookahead_days: number; start_date: string; end_date: string; global_events: any[]; }; } declare class Games { /** * Get a list of Games available on he platform. * * @see https://api.glitch.fun/api/documentation#/ExternalGames/getExternalGames * * @returns promise */ static listGames(params?: Record): AxiosPromise>; /** * Retrieve information on a single game. * * @see https://api.glitch.fun/api/documentation#/ExternalGames/getExternalGameById * * @returns promise */ static viewGame(game_id: string, params?: Record): AxiosPromise>; /** * Generates campaign data for this game. * * @see https://api.glitch.fun/api/documentation#/ExternalGames/generateCampaign * * @returns promise */ static createCampaignData(game_id: string, data?: object, params?: Record): AxiosPromise>; /** * Generates campaign data with a game title. * * @returns promise */ static createCampaignWithTitle(game_id: string, data?: object, params?: Record): AxiosPromise>; /** * Generates game data for this game. * * @see https://api.glitch.fun/api/documentation#/ExternalGames/generateCampaign * * @returns promise */ static createGameTitle(game_id: string, data?: object, params?: Record): AxiosPromise>; /** * Generates game scheduler data for this game. * * @see https://api.glitch.fun/api/documentation#/ExternalGames/generateCampaign * * @returns promise */ static createGameScheduler(game_id: string, data?: object, params?: Record): AxiosPromise>; /** * Get release competition statistics and Steam danger zones. * * This tool analyzes the 'ExternalGames' database to show how many other games * are releasing around a specific date. It also overlays hard-coded Steam events * like NextFest and Seasonal Sales. * * @see https://api.glitch.fun/api/documentation#/ExternalGames/getReleaseStats * * @param params Filtering options: * - precision: 'day' | 'month' | 'year' (Default: 'day'). Use 'month' for long-term planning. * - start_date: 'YYYY-MM-DD'. The date to begin the analysis from. * * @returns AxiosPromise> * * @example * Games.getReleaseStats({ precision: 'day', start_date: '2025-06-01' }) * .then(res => console.log(res.data.data)); */ static getReleaseStats(params?: { precision?: 'day' | 'month' | 'year'; start_date?: string; }): AxiosPromise>; } declare class Publications { /** * Get a list of all publictions, podcasts and blogs. * * @see https://api.glitch.fun/api/documentation#/Publications/getPublications * * @returns promise */ static list(params?: Record): AxiosPromise>; /** * Download the list of publictions, podcasts and blogs. * * @see https://api.glitch.fun/api/documentation#/Publications/downloadPublications * * @param data The data to be passed when creating a team. * * @returns Promise */ static download(data: object, params?: Record): AxiosPromise>; } interface GameShowScheduleTicketTypeInput { name: string; description?: string | null; kind: 'early_bird' | 'regular' | 'other'; price_cents: number; currency: string; quantity_available?: number | null; sales_start_at?: string | null; sales_end_at?: string | null; sort_order?: number; is_active?: boolean; } interface GameShowFestivalTicketTypeInput extends GameShowScheduleTicketTypeInput { scope: 'session' | 'festival' | 'track' | 'bundle'; schedule_item_id?: string | null; track_block_id?: string | null; schedule_item_ids?: string[] | null; } interface GameShowScheduleTicketPurchaseInput { ticket_type_id: string; email: string; first_name?: string; last_name?: string; quantity: number; payment_method_id?: string; } interface GameShowScheduleTicketRefundInput { amount_cents: number; reason?: string; } interface GameShowTitleCandidateSearchParams { q: string; page?: number; per_page?: number; } declare class GameShows { /** * List all the GameShows. * * @see https://api.glitch.fun/api/documentation#/GameShows/getGameShows * * @returns promise */ static list(params?: Record): AxiosPromise>; /** * Create a new game show. * * @see https://api.glitch.fun/api/documentation#/GameShows/createGameShow * * @param data The data to be passed when creating a game show. * * @returns Promise */ static create(data: object, params?: Record): AxiosPromise>; /** * Update a game show. * * @see https://api.glitch.fun/api/documentation#/GameShows/updateGameShow * * @param show_id The id of the game show to update. * @param data The data to update. * * @returns promise */ static update(show_id: string, data: object, params?: Record): AxiosPromise>; /** * Retrieve the information for a single game show. * * @see https://api.glitch.fun/api/documentation#/GameShows/getGameShowByUuid * * @param show_id The id fo the game show to retrieve. * * @returns promise */ static view(show_id: string, params?: Record): AxiosPromise>; /** * Deletes a game show. * * @see https://api.glitch.fun/api/documentation#/GameShows/deleteGameShow * * @param show_id The id of the game show to delete. * @returns promise */ static delete(show_id: string, params?: Record): AxiosPromise>; /** * Updates the main image for the game show using a File object. * * @see https://api.glitch.fun/api/documentation#/GameShows/uploadGameShowLogo * * @param file The file object to upload. * @param data Any additional data to pass along to the upload. * * @returns promise */ static uploadLogoFile(show_id: string, file: File, data?: object, params?: Record): AxiosPromise>; /** * Updates the main image for the game show using a Blob. * * @see https://api.glitch.fun/api/documentation#/GameShows/uploadGameShowLogo * * @param blob The blob to upload. * @param data Any additional data to pass along to the upload * * @returns promise */ static uploadLogoBlob(show_id: string, blob: Blob, data?: object, params?: Record): AxiosPromise>; /** * Updates the banner image for the game show using a File object. * * @see https://api.glitch.fun/api/documentation#/GameShows/uploadGameShowBannerImage * * @param file The file object to upload. * @param data Any additional data to pass along to the upload. * * @returns promise */ static uploadBannerImageFile(show_id: string, file: File, data?: object, params?: Record): AxiosPromise>; /** * Updates the banner image for the game show using a Blob. * * @see https://api.glitch.fun/api/documentation#/GameShows/uploadGameShowBannerImage * * @param blob The blob to upload. * @param data Any additional data to pass along to the upload * * @returns promise */ static uploadBannerImageBlob(show_id: string, blob: Blob, data?: object, params?: Record): AxiosPromise>; /** * Register a title to a game show. */ static registerTitle(show_id: string, data: object, params?: Record): AxiosPromise>; /** List the active ordered custom-question schema used by public registration. */ static listRegistrationQuestions(show_id: string, params?: Record): AxiosPromise>; /** List active, inactive, and archived custom questions for organizers. */ static manageRegistrationQuestions(show_id: string, params?: Record): AxiosPromise>; /** Create one schema-driven custom developer-registration question. */ static createRegistrationQuestion(show_id: string, data: object, params?: Record): AxiosPromise>; /** Update wording, validation, visibility, ordering, or stable choices. */ static updateRegistrationQuestion(show_id: string, question_id: string, data: object, params?: Record): AxiosPromise>; /** Archive a question while preserving historical answers and reporting. */ static deleteRegistrationQuestion(show_id: string, question_id: string, params?: Record): AxiosPromise>; /** Apply the organizer's exact ordered list of question UUIDs. */ static reorderRegistrationQuestions(show_id: string, data: object, params?: Record): AxiosPromise>; /** Review custom answers grouped by submitted game. */ static listRegistrationResponses(show_id: string, params?: Record): AxiosPromise>; /** Retrieve type-aware aggregate reports without exposing free-text values. */ static registrationQuestionReports(show_id: string, params?: Record): AxiosPromise>; /** * Add a title to a game show by admin. */ static addTitle(show_id: string, data: object, params?: Record): AxiosPromise>; /** Search privacy-safe registered Glitch games that an organizer may attach to a festival. */ static searchTitleCandidates(show_id: string, params: GameShowTitleCandidateSearchParams): AxiosPromise>; /** Preview CSV/TSV/TXT/ZIP registrations without writing showcase data. */ static previewExternalTitles(show_id: string, file: File, data?: object, params?: Record): AxiosPromise>; /** Import valid external registrations after organizer preview. */ static importExternalTitles(show_id: string, file: File, data?: object, params?: Record): AxiosPromise>; /** * List all titles for a game show. */ static listTitles(show_id: string, params?: Record): AxiosPromise>; /** * Get details of a specific title in a game show. */ static getTitle(show_id: string, title_id: string, params?: Record): AxiosPromise>; /** * Update a specific title in a game show. */ static updateTitle(show_id: string, title_id: string, data: object, params?: Record): AxiosPromise>; /** * Delete a specific title from a game show. */ static deleteTitle(show_id: string, title_id: string, params?: Record): AxiosPromise>; /** * List public page-builder blocks for a game show. */ static listBlocks(show_id: string, params?: Record): AxiosPromise>; /** Paginate one Page Builder game section without downloading its full catalog. */ static listBlockTitles(show_id: string, block_id: string, params?: Record): AxiosPromise>; /** * Create a page-builder block for a game show. Requires organizer permissions. */ static createBlock(show_id: string, data: object, params?: Record): AxiosPromise>; /** * Update a page-builder block for a game show. Requires organizer permissions. */ static updateBlock(show_id: string, block_id: string, data: object, params?: Record): AxiosPromise>; /** * Delete a page-builder block from a game show. Requires organizer permissions. */ static deleteBlock(show_id: string, block_id: string, params?: Record): AxiosPromise>; /** * Reorder page-builder blocks for a game show. Requires organizer permissions. */ static reorderBlocks(show_id: string, data: object, params?: Record): AxiosPromise>; /** * List livestream and programming schedule items for a game show. */ static listSchedule(show_id: string, params?: Record): AxiosPromise>; /** Fetch one public or organizer-visible festival schedule item. */ static getScheduleItem(show_id: string, schedule_id: string, params?: Record): AxiosPromise>; /** * Create a schedule item for a game show. Requires organizer permissions. */ static createScheduleItem(show_id: string, data: object, params?: Record): AxiosPromise>; /** * Update a schedule item for a game show. Requires organizer permissions. */ static updateScheduleItem(show_id: string, schedule_id: string, data: object, params?: Record): AxiosPromise>; /** * Delete a schedule item from a game show. Requires organizer permissions. */ static deleteScheduleItem(show_id: string, schedule_id: string, params?: Record): AxiosPromise>; /** List public festival, track, bundle, and single-session ticket products. */ static listFestivalTicketTypes(show_id: string, params?: Record): AxiosPromise>; /** List all festival ticket products, including archived products, for organizers. */ static manageFestivalTicketTypes(show_id: string, params?: Record): AxiosPromise>; /** Create a whole-festival pass, track pass, event bundle, or session ticket. */ static createFestivalTicketType(show_id: string, data: GameShowFestivalTicketTypeInput, params?: Record): AxiosPromise>; /** Update the coverage, price, inventory, sales window, or visibility of a festival ticket product. */ static updateFestivalTicketType(show_id: string, ticket_type_id: string, data: Partial, params?: Record): AxiosPromise>; /** Archive a festival ticket product while retaining purchase history. */ static deleteFestivalTicketType(show_id: string, ticket_type_id: string, params?: Record): AxiosPromise>; /** Reserve inventory and create or confirm a festival-level ticket payment. */ static purchaseFestivalTickets(show_id: string, data: GameShowScheduleTicketPurchaseInput, params?: Record): AxiosPromise>; /** Synchronize a festival-level ticket purchase after Stripe.js completes 3DS. */ static confirmFestivalTicketPurchase(show_id: string, purchase_id: string, access_token: string, params?: Record): AxiosPromise>; /** Retrieve a token-protected receipt for any festival ticket scope. */ static getFestivalTicketReceipt(show_id: string, purchase_id: string, access_token: string, params?: Record): AxiosPromise>; /** List purchasers across festival, track, bundle, and session ticket products. */ static listFestivalTicketPurchases(show_id: string, params?: Record): AxiosPromise>; /** Issue a partial or full refund for a festival ticket purchase. */ static refundFestivalTicketPurchase(show_id: string, purchase_id: string, data: GameShowScheduleTicketRefundInput, params?: Record): AxiosPromise>; /** List public early-bird, regular, and other ticket tiers for one session. */ static listScheduleTicketTypes(show_id: string, schedule_id: string, params?: Record): AxiosPromise>; /** List every ticket tier, including archived tiers, for festival organizers. */ static manageScheduleTicketTypes(show_id: string, schedule_id: string, params?: Record): AxiosPromise>; /** Create one session ticket price tier. */ static createScheduleTicketType(show_id: string, schedule_id: string, data: GameShowScheduleTicketTypeInput, params?: Record): AxiosPromise>; /** Update ticket price, inventory, availability window, or publication state. */ static updateScheduleTicketType(show_id: string, schedule_id: string, ticket_type_id: string, data: Partial, params?: Record): AxiosPromise>; /** Archive a ticket tier while retaining historical purchases. */ static deleteScheduleTicketType(show_id: string, schedule_id: string, ticket_type_id: string, params?: Record): AxiosPromise>; /** Reserve inventory and create/confirm the session ticket PaymentIntent. */ static purchaseScheduleTickets(show_id: string, schedule_id: string, data: GameShowScheduleTicketPurchaseInput, params?: Record): AxiosPromise>; /** Synchronize the same ticket PaymentIntent after Stripe.js completes 3DS. */ static confirmScheduleTicketPurchase(show_id: string, schedule_id: string, purchase_id: string, access_token: string, params?: Record): AxiosPromise>; /** Retrieve a token-protected customer receipt. */ static getScheduleTicketReceipt(show_id: string, schedule_id: string, purchase_id: string, access_token: string, params?: Record): AxiosPromise>; /** List ticket purchasers and refund state for festival organizers. */ static listScheduleTicketPurchases(show_id: string, schedule_id: string, params?: Record): AxiosPromise>; /** Issue a partial or full destination-charge refund at organizer discretion. */ static refundScheduleTicketPurchase(show_id: string, schedule_id: string, purchase_id: string, data: GameShowScheduleTicketRefundInput, params?: Record): AxiosPromise>; /** * Get the game show discovery queue. */ static discoveryQueue(show_id: string, params?: Record): AxiosPromise>; /** * Track public game show analytics events. */ static trackAnalytics(show_id: string, data: object, params?: Record): AxiosPromise>; /** * Get organizer analytics for a game show. */ static analyticsReport(show_id: string, params?: Record): AxiosPromise>; /** * Join or update a public notification signup for a game show. */ static joinWishlist(show_id: string, data: object, params?: Record): AxiosPromise>; /** * Confirm the double-opt-in token from a festival reminder email. * The response contains confirmation state and festival identity only. * * @see https://api.glitch.fun/api/documentation#/GameShows/confirmGameShowWishlist */ static confirmWishlist(token: string, params?: Record): AxiosPromise>; /** * List notification signups for a game show. Requires organizer permissions. */ static listWishlist(show_id: string, params?: Record): AxiosPromise>; /** List the anonymous, published festival award/prize/swag catalog. */ static listPublicRewards(show_id: string, params?: Record): AxiosPromise>; /** Retrieve one SSR-ready public festival reward. */ static getPublicReward(show_id: string, reward_id: string, params?: Record): AxiosPromise>; /** Retrieve a privacy-safe public game leaderboard for one reward. */ static getPublicRewardLeaderboard(show_id: string, reward_id: string, params?: Record): AxiosPromise>; /** List drafts, sponsor items, inventory, recipients, and fulfillment for organizers. */ static manageRewards(show_id: string, params?: Record): AxiosPromise>; /** Claim an eligible attendee, entrant, points, or previously awarded festival reward. */ static claimReward(show_id: string, reward_id: string, data?: { title_id?: string; }, params?: Record): AxiosPromise>; /** Create an organizer-controlled festival award, prize, swag item, or reward. */ static createReward(show_id: string, data: object, params?: Record): AxiosPromise>; /** Update publication, eligibility, metrics, inventory, or rich content. */ static updateReward(show_id: string, reward_id: string, data: object, params?: Record): AxiosPromise>; /** Soft-delete one festival reward. */ static deleteReward(show_id: string, reward_id: string, params?: Record): AxiosPromise>; /** Preview the organizer-only game or attendee performance leaderboard. */ static rewardLeaderboard(show_id: string, reward_id: string, params?: Record): AxiosPromise>; /** Snapshot current metric leaders as reward recipients. */ static autoAwardReward(show_id: string, reward_id: string, params?: Record): AxiosPromise>; /** Add a manual nominee, winner, honoree, claimant, or fulfillment record. */ static addRewardRecipient(show_id: string, reward_id: string, data: object, params?: Record): AxiosPromise>; /** Update judging, claim, revocation, rank, or fulfillment state. */ static updateRewardRecipient(show_id: string, reward_id: string, recipient_id: string, data: object, params?: Record): AxiosPromise>; /** * List public game shows that include a title. Useful for game-page festival banners. */ static listForTitle(title_id: string, params?: Record): AxiosPromise>; /** List organizer-visible developer claim and completion workflows. */ static listTitleClaims(show_id: string, params?: Record): AxiosPromise>; /** Invite or remind a developer to claim and complete a festival game. */ static inviteTitleClaim(show_id: string, title_id: string, data: { email: string; }, params?: Record): AxiosPromise>; /** Open a private festival game claim before authentication. */ static viewTitleClaim(show_id: string, token: string, params?: Record): AxiosPromise>; /** Bind the invited game to the current user and one administered business. */ static claimTitle(show_id: string, token: string, data: { community_id: string; }, params?: Record): AxiosPromise>; /** Finish required game information and record the optional build choice. */ static completeTitleClaim(show_id: string, token: string, data: { build_choice: 'upload' | 'skip'; build_completed?: boolean; }, params?: Record): AxiosPromise>; /** List private sponsor workflow, contact, billing, media, and placements. */ static listSponsors(show_id: string, params?: Record): AxiosPromise>; /** Create a manual sponsor or send a self-service invitation. */ static createSponsor(show_id: string, data: object, params?: Record): AxiosPromise>; /** Retrieve one organizer-authorized festival sponsor. */ static getSponsor(show_id: string, sponsor_id: string, params?: Record): AxiosPromise>; /** Update sponsor workflow, creative metadata, schedule, or billing terms. */ static updateSponsor(show_id: string, sponsor_id: string, data: object, params?: Record): AxiosPromise>; /** Delete an unpaid sponsor and its placements. */ static deleteSponsor(show_id: string, sponsor_id: string, params?: Record): AxiosPromise>; /** Replace the private token and resend the sponsor invitation. */ static resendSponsorInvitation(show_id: string, sponsor_id: string, params?: Record): AxiosPromise>; /** Add another festival, game, session, or event placement. */ static createSponsorPlacement(show_id: string, sponsor_id: string, data: object, params?: Record): AxiosPromise>; /** Partially update an existing sponsor placement. */ static updateSponsorPlacement(show_id: string, sponsor_id: string, placement_id: string, data: object, params?: Record): AxiosPromise>; /** Delete one placement without deleting the sponsor creative. */ static deleteSponsorPlacement(show_id: string, sponsor_id: string, placement_id: string, params?: Record): AxiosPromise>; /** List privacy-limited, publicly eligible creatives and placements. */ static listPublicSponsors(show_id: string, params?: Record): AxiosPromise>; /** Open a token-protected sponsor portal without a user session. */ static sponsorInvitation(token: string, params?: Record): AxiosPromise>; /** Upload sponsor image/video through the shared Media pipeline. */ static uploadSponsorInvitationMedia(token: string, file: File, data?: object, params?: Record): AxiosPromise>; /** Submit sponsor identity, destination, and accessibility metadata. */ static submitSponsorInvitation(token: string, data: object, params?: Record): AxiosPromise>; /** Create/confirm a destination PaymentIntent from a PaymentMethod ID. */ static paySponsorInvitation(token: string, data: object, params?: Record): AxiosPromise>; /** Synchronize the same intent after Stripe.js completes required 3DS. */ static confirmSponsorInvitationPayment(token: string, params?: Record): AxiosPromise>; /** List awards, prizes, and swag owned by a sponsor invitation. */ static sponsorInvitationRewards(token: string, params?: Record): AxiosPromise>; /** Create a draft sponsor-owned award, prize, or swag item. */ static createSponsorInvitationReward(token: string, data: object, params?: Record): AxiosPromise>; /** Update sponsor-owned reward content and eligibility. */ static updateSponsorInvitationReward(token: string, reward_id: string, data: object, params?: Record): AxiosPromise>; /** Remove a sponsor-owned draft reward. */ static deleteSponsorInvitationReward(token: string, reward_id: string, params?: Record): AxiosPromise>; } declare class Newsletters { /** * Download the list of publictions, podcasts and blogs. * * @see https://api.glitch.fun/api/documentation#/Newsletters/downloadMarketingChecklists * * @param data The data to be passed when creating a team. * * @returns Promise */ static downloadMarketingChecklist(data: object, params?: Record): AxiosPromise>; /** * Join the marketing course waitlist. * * @param data { name, email, game, topics[] } * @returns Promise */ static joinCourseWaitlist(data: object, params?: Record): AxiosPromise>; /** * Join the raffle feature waitlist. * * @param data { name, email, game, prizes[], interest_in_playtesters, launch_timeline, target_wishlist_count } */ static joinRaffleWaitlist(data: object, params?: Record): AxiosPromise>; /** * Join the Discord Marketplace waitlist. * * @param data { name, email, game, categories[] } */ static joinDiscordMarketplaceWaitlist(data: object, params?: Record): AxiosPromise>; /** * Join the NSFW/Lewd game marketing waitlist. * * @param data { name, email, game } */ static joinNsfwWaitlist(data: object, params?: Record): AxiosPromise>; /** * Apply for Codex credit support for a playable AI game. * * @param data { name, email, game, game_description, game_url } */ static joinCodexCreditWaitlist(data: object, params?: Record): AxiosPromise>; /** * List all newsletter campaigns (Admin only). */ static listCampaigns(params?: Record): AxiosPromise>; /** * Create a new newsletter campaign draft (Admin only). */ static createCampaign(data: object): AxiosPromise>; /** * Retrieve a specific newsletter campaign (Admin only). */ static viewCampaign(id: string): AxiosPromise>; /** * Update a newsletter campaign draft (Admin only). */ static updateCampaign(id: string, data: object): AxiosPromise>; /** * Delete a newsletter campaign (Admin only). */ static deleteCampaign(id: string): AxiosPromise>; /** * Get high-level analytics for a specific campaign (Admin only). */ static getCampaignStats(id: string): AxiosPromise>; /** * Get detailed delivery and open logs for a campaign (Admin only). */ static getCampaignLogs(id: string, params?: Record): AxiosPromise>; /** * Trigger the delivery of a newsletter campaign to all active subscribers (Admin only). */ static sendCampaign(id: string): AxiosPromise>; /** * Send a test email of a campaign to a specific address (Admin only). */ static sendTestEmail(id: string, email: string): AxiosPromise>; /** * List all newsletter subscribers (Admin only). */ static listSubscribers(params?: Record): AxiosPromise>; /** * Manually create a new newsletter subscriber (Admin only). */ static createSubscriber(data: object): AxiosPromise>; /** * Retrieve a specific subscriber's details (Admin only). */ static viewSubscriber(id: string): AxiosPromise>; /** * Update a subscriber's information or status (Admin only). */ static updateSubscriber(id: string, data: object): AxiosPromise>; /** * Permanently delete a subscriber from the system (Admin only). */ static deleteSubscriber(id: string): AxiosPromise>; /** * Join the distribution platform waitlist for indie developers. * * @see https://api.glitch.fun/api/documentation#/Newsletters/joinDistributionWaitlist * * @param data { name: string, email: string, game: string, team_size: string, revenue_goal: string } * @returns Promise */ static joinDistributionWaitlist(data: object, params?: Record): AxiosPromise>; /** * Register for Consumer Early Access to the streaming platform. * * @param data { name, email } */ static joinConsumerWaitlist(data: object, params?: Record): AxiosPromise>; } declare class PlayTests { /** * Get a list of play tests associated with a title. * * @param title_id The ID of the title. * @param params Optional query parameters. * @returns Promise */ static list(title_id: string, params?: Record): AxiosPromise>; /** * User requests to test a title. * * @param title_id The ID of the title. * @param data Optional data for the request. * @returns Promise */ static requestPlayTest(title_id: string, data?: object, params?: Record): AxiosPromise>; /** * Title administrator invites a user to test a title. * * @param title_id The ID of the title. * @param data The data containing user_id and other optional fields. * @returns Promise */ static invitePlayTester(title_id: string, data: object, params?: Record): AxiosPromise>; /** * User submits or updates their answers for a play test. * * @param title_id The ID of the title. * @param playtest_id The ID of the play test. * @param data The answers data. * @returns Promise */ static submitAnswers(title_id: string, playtest_id: string, data: object, params?: Record): AxiosPromise>; /** * Title admin updates test questions for a play test. * * @param title_id The ID of the title. * @param playtest_id The ID of the play test. * @param data The questions data. * @returns Promise */ static updateQuestions(title_id: string, playtest_id: string, data: object, params?: Record): AxiosPromise>; /** * User accepts an invite to a play test. * * @param title_id The ID of the title. * @param playtest_id The ID of the play test. * @returns Promise */ static acceptInvite(title_id: string, playtest_id: string, params?: Record): AxiosPromise>; /** * User rejects an invite to a play test. * * @param title_id The ID of the title. * @param playtest_id The ID of the play test. * @returns Promise */ static rejectInvite(title_id: string, playtest_id: string, params?: Record): AxiosPromise>; /** * Title admin approves a user's play test request. * * @param title_id The ID of the title. * @param playtest_id The ID of the play test. * @returns Promise */ static approveRequest(title_id: string, playtest_id: string, params?: Record): AxiosPromise>; /** * Title admin declines a user's play test request. * * @param title_id The ID of the title. * @param playtest_id The ID of the play test. * @returns Promise */ static declineRequest(title_id: string, playtest_id: string, params?: Record): AxiosPromise>; /** * User cancels their own play test request. * * @param title_id The ID of the title. * @param playtest_id The ID of the play test. * @returns Promise */ static cancelRequest(title_id: string, playtest_id: string, params?: Record): AxiosPromise>; /** * Retrieve a single play test. * * @param title_id The ID of the title. * @param playtest_id The ID of the play test. * @returns Promise */ static show(title_id: string, playtest_id: string, params?: Record): AxiosPromise>; /** * Get all the play tests that are associated with the current user. * * @param title_id The ID of the title. * @param playtest_id The ID of the play test. * @returns Promise */ static mine(params?: Record): AxiosPromise>; /** * Get aggregated results for a play test (publisher view). * * @param title_id The ID of the title. * @param playtest_id The ID of the play test. * @returns Promise */ static getResults(title_id: string, playtest_id: string, params?: Record): AxiosPromise>; /** * Upload an audio/video answer file for a play test question. The file is * stored by the Glitch backend (authenticated with the session token) and a * media URL is returned that can then be passed to submitAnswers(). * * @param title_id The ID of the title. * @param playtest_id The ID of the play test. * @param file The recorded audio/video file or blob. * @param data Additional fields (question_id, media_type, title, description). * @param params Optional query parameters. * @param onUploadProgress Optional progress callback. * @returns Promise */ static uploadAnswer(title_id: string, playtest_id: string, file: File | Blob, data?: Record, params?: Record, onUploadProgress?: (progressEvent: AxiosProgressEvent) => void): AxiosPromise>; } interface SteamCapsuleCropRequest { media_id: string; capsule_type: 'header' | 'small' | 'main' | 'vertical' | 'library' | 'library_header' | 'library_hero' | 'page_background' | 'screenshot' | 'app_icon' | 'shortcut_icon'; crop_x?: number; crop_y?: number; crop_width?: number; crop_height?: number; } interface SteamCapsuleAnalysisRequest { media_id: string; capsule_type: 'header' | 'small' | 'main' | 'vertical' | 'library' | 'library_header' | 'library_hero' | 'page_background'; game_name?: string; game_genre?: string; } interface RemoveBackgroundRequest { media_id: string; output_format?: 'png' | 'webp'; } interface RemoveBackgroundAIRequest { media_id: string; use_ai_analysis?: boolean; } interface CreateLibraryLogoRequest { media_id: string; target_width?: number; target_height?: number; } interface ValidateScreenshotRequest { media_id: string; } interface SteamCapsuleDimensions { width: number; height: number; } interface SteamCapsuleCropResponse { media: any; download_url: string; dimensions: SteamCapsuleDimensions; capsule_type: string; } interface CategoryScores { visual_hierarchy: number; title_readability: number; genre_communication: number; brand_identity: number; composition_balance: number; art_style: number; emotional_impact: number; steam_compliance: number; } interface SteamCapsuleAnalysisResponse { media_id: string; capsule_type: string; dimensions: SteamCapsuleDimensions; overall_score: number; category_scores: CategoryScores; strengths: string[]; improvements: string[]; recommendations: string[]; ai_description: string; guidelines: any; } interface RemoveBackgroundResponse { success: boolean; message: string; data: any; } interface RemoveBackgroundAIResponse { success: boolean; message: string; data: any; ai_used: boolean; } interface CreateLibraryLogoResponse { success: boolean; message: string; data: any; } interface ScreenshotValidationResponse { success: boolean; valid: boolean; dimensions: SteamCapsuleDimensions; aspect_ratio: number; issues: string[]; recommendations: string[]; } interface PresignedUrlResponse { upload_url: string; file_path: string; } interface S3ConfirmRequest { file_path: string; size: number; mime_type: string; title?: string; filename?: string; } /** * Interfaces for the Video Editor Manifest */ interface VideoEdit { type: 'trim' | 'crop' | 'text' | 'speed' | 'overlay' | 'thumbnail'; params: TrimParams | CropParams | TextParams | SpeedParams | any; } interface TrimParams { start: number; duration: number; } interface CropParams { x: number; y: number; width: number; height: number; } interface TextParams { text: string; x: string | number; y: string | number; fontSize: number; fontColor: string; } interface SpeedParams { multiplier: number; } interface VideoProcessRequest { edits: VideoEdit[]; output_format?: 'mp4' | 'webm'; } declare class Media { /** * Upload media content using a File object. * * @see https://api.glitch.fun/api/documentation#/Media%20Route/uploadMedia * * @param file The file object to upload. * @param data Any additional data to pass along to the upload. * * @returns promise */ static uploadFile(file: File, data?: object, params?: Record, onUploadProgress?: (progressEvent: AxiosProgressEvent) => void): AxiosPromise>; /** * Upload media content using a Blob. * * @see https://api.glitch.fun/api/documentation#/Media%20Route/uploadMedia * * @param blob The Blob object to upload. * @param data Any additional data to pass along to the upload. * * @returns promise */ static uploadBlob(blob: Blob, data?: object, params?: Record, onUploadProgress?: (progressEvent: AxiosProgressEvent) => void): AxiosPromise>; /** * Get media details. * * @see https://api.glitch.fun/api/documentation#/Media%20Route/getMedia * * @param id The ID of the media item. * * @returns promise */ static get(media_id: string, params?: Record): AxiosPromise>; /** * Crop and resize an image to Steam capsule dimensions. * * @param request The crop request parameters. * @param params Additional query parameters. * * @returns promise */ static cropSteamCapsule(request: SteamCapsuleCropRequest, params?: Record): AxiosPromise>; /** * Analyze a Steam capsule image using AI. * * @param request The analysis request parameters. * @param params Additional query parameters. * * @returns promise */ static analyzeSteamCapsule(request: SteamCapsuleAnalysisRequest, params?: Record): AxiosPromise>; /** * Remove background from an image to create transparent PNG. * * @param request The background removal request parameters. * @param params Additional query parameters. * * @returns promise */ static removeBackground(request: RemoveBackgroundRequest, params?: Record): AxiosPromise>; /** * Remove background from an image using AI analysis for better results. * * @param request The AI-enhanced background removal request parameters. * @param params Additional query parameters. * * @returns promise */ static removeBackgroundAI(request: RemoveBackgroundAIRequest, params?: Record): AxiosPromise>; /** * Create a Steam Library Logo meeting Steam's requirements. * * @param request The library logo creation request parameters. * @param params Additional query parameters. * * @returns promise */ static createLibraryLogo(request: CreateLibraryLogoRequest, params?: Record): AxiosPromise>; /** * Validate a screenshot against Steam's requirements. * * @param request The screenshot validation request parameters. * @param params Additional query parameters. * * @returns promise */ static validateScreenshot(request: ValidateScreenshotRequest, params?: Record): AxiosPromise>; /** * Get Steam capsule dimensions for a specific type. * * @param capsuleType The type of Steam capsule. * * @returns The dimensions object or null if invalid type. */ static getSteamCapsuleDimensions(capsuleType: string): SteamCapsuleDimensions | null; /** * Get Steam capsule type information and requirements. * * @param capsuleType The type of Steam capsule. * * @returns Information about the capsule type. */ static getSteamCapsuleInfo(capsuleType: string): any; /** * Get Steam screenshot requirements. * * @returns Screenshot requirements object. */ static getSteamScreenshotRequirements(): { minWidth: number; minHeight: number; aspectRatio: number; minCount: number; format: string; content: string; }; /** * Get Steam library logo requirements. * * @returns Library logo requirements object. */ static getSteamLibraryLogoRequirements(): { maxWidth: number; maxHeight: number; format: string; requirement: string; content: string; }; /** * Upload an audio file to TikTok's asset library via our Media controller. * * @param file The audio file (mp3). * @param scheduler_id The ID of the scheduler to provide OAuth context. */ static uploadTikTokMusic(file: File, scheduler_id: string): AxiosPromise>; /** * Generate an S3 Presigned URL for direct upload. * * @param filename The original name of the file. * @param extension The file extension (e.g., 'mp4'). * @param is_public Set to true if the file should be publicly accessible via URL. */ static getPresignedUrl(filename: string, extension: string, is_public?: boolean): AxiosPromise>; /** * Confirm a successful S3 upload and create the database record. * Call this after the direct S3 upload is complete. * * @param data The file metadata (path, size, mime_type). * @returns AxiosPromise containing the created Media resource. */ static confirmS3Upload(data: S3ConfirmRequest): AxiosPromise>; /** * Submit a video for processing (Trim, Crop, Text, etc.) * This triggers a background job on the server. * * @param media_id The UUID of the source video. * @param data The edit manifest containing the array of transformations. * @returns Promise with the pending_media_id. */ static process(media_id: string, data: VideoProcessRequest): AxiosPromise>; } type DiscordMediaType = 'all' | 'image' | 'video' | 'gif'; type DiscordMediaAuthorType = 'all' | 'user' | 'bot' | 'webhook'; interface DiscordMediaSearchParams { cursor?: string; channel_id?: string; search?: string; search_scope?: 'content' | 'filename'; media_type?: DiscordMediaType; author_type?: DiscordMediaAuthorType; date_from?: string; date_to?: string; sort_order?: 'asc' | 'desc'; include_imported?: boolean; include_unsupported?: boolean; include_nsfw?: boolean; } interface DiscordMediaAttachment { id: string; filename: string; title?: string | null; description?: string | null; mime_type: string; media_type: 'image' | 'video'; size: number; url?: string | null; proxy_url?: string | null; width?: number | null; height?: number | null; duration_secs?: number | null; supported: boolean; unsupported_reason?: string | null; already_imported: boolean; imported_title_update_id?: string | null; imported_media_id?: string | null; duplicate_import: boolean; } interface DiscordMediaMessage { id: string; channel_id: string; content: string; timestamp?: string | null; edited_timestamp?: string | null; jump_url: string; author: { id?: string | null; username: string; avatar?: string | null; bot: boolean; }; webhook_id?: string | null; attachments: DiscordMediaAttachment[]; } interface DiscordMediaSearchResponse { items: DiscordMediaMessage[]; total_results: number; next_cursor?: string | null; indexing: boolean; retry_after?: number | null; } interface DiscordMediaImportGroup { channel_id: string; message_id: string; attachment_ids: string[]; } type DiscordTitleUpdateMode = 'grouped' | 'separate'; interface DiscordMediaImportRequest { groups: DiscordMediaImportGroup[]; /** Group files by Discord message or create one pending Library item per file. */ title_update_mode?: DiscordTitleUpdateMode; } interface DiscordMediaImportAttachmentResult { status: 'imported' | 'duplicate' | 'failed'; channel_id: string; message_id: string; attachment_id: string; media_id?: string; title_update_id?: string; reason?: string; } interface DiscordMediaImportResponse { imported_count: number; duplicate_count: number; failed_count: number; updates: Array<{ id: string; title?: string | null; scheduled_status: 'pending'; schedule_for_social: false; media_count: number; }>; attachments: DiscordMediaImportAttachmentResult[]; } interface DiscordUserCommandStatus { linked: boolean; linked_to_this_scheduler: boolean; discord_username?: string | null; destination_scheduler_id?: string | null; destination_scheduler_name?: string | null; installed_at?: string | null; destination_count?: number; linked_account_count?: number; pending_count: number; command_name: string; setup_path: string; configured: boolean; command_ready: boolean; credentials_configured: boolean; user_install_enabled: boolean; interactions_endpoint_configured: boolean; command_registered: boolean; command_id?: string | null; configuration_error?: string | null; checked_at?: string | null; } type DiscordMediaCaptureStatus = 'processing' | 'ready' | 'complete' | 'failed' | 'expired'; type DiscordMediaCaptureAttachmentStatus = 'processing' | 'ready' | 'duplicate' | 'unsupported' | 'failed' | 'imported'; interface DiscordMediaCaptureAttachment { id: string; discord_attachment_id: string; filename: string; mime_type?: string | null; media_type: 'image' | 'video'; size: number; width?: number | null; height?: number | null; duration_secs?: number | null; description?: string | null; status: DiscordMediaCaptureAttachmentStatus; failure_reason?: string | null; preview_url?: string | null; media_id?: string | null; title_update_id?: string | null; } interface DiscordMediaCapture { id: string; status: DiscordMediaCaptureStatus; content?: string | null; author?: { id?: string | null; username: string; avatar?: string | null; bot: boolean; } | null; timestamp?: string | null; jump_url?: string | null; expires_at: string; failure_reason?: string | null; attachments: DiscordMediaCaptureAttachment[]; } interface DiscordMediaCaptureListParams { cursor?: string; search?: string; limit?: number; } interface DiscordMediaCaptureListResponse { items: DiscordMediaCapture[]; next_cursor?: string | null; } interface DiscordMediaCaptureImportRequest { capture_id: string; attachment_ids: string[]; /** Group selected files together or create one pending Library item per file. */ title_update_mode?: DiscordTitleUpdateMode; } declare class Scheduler { /** * List promotion schedules. * * @see https://api.glitch.fun/api/documentation#/Scheduler/getTitlePromotionSchedules * * @returns promise */ static listSchedules(params?: Record): AxiosPromise>; /** * Create a new promotion schedule. * * @see https://api.glitch.fun/api/documentation#/Scheduler/createTitlePromotionSchedule * * @param data The data for the new schedule. * * @returns promise */ static createSchedule(data: object, params?: Record): AxiosPromise>; /** * Get a specific promotion schedule. * * @see https://api.glitch.fun/api/documentation#/Scheduler/getTitlePromotionSchedule * * @param scheduler_id The ID of the promotion schedule. * * @returns promise */ static getSchedule(scheduler_id: string, params?: Record): AxiosPromise>; /** * Update a promotion schedule. * * @see https://api.glitch.fun/api/documentation#/Scheduler/updateTitlePromotionSchedule * * @param scheduler_id The ID of the promotion schedule. * @param data The data to update. * * @returns promise */ static updateSchedule(scheduler_id: string, data: object, params?: Record): AxiosPromise>; /** * Delete a promotion schedule. * * @see https://api.glitch.fun/api/documentation#/Scheduler/deleteTitlePromotionSchedule * * @param scheduler_id The ID of the promotion schedule. * * @returns promise */ static deleteSchedule(scheduler_id: string, params?: Record): AxiosPromise>; /** * Test the tone of the scheduler. * * @see https://api.glitch.fun/api/documentation#/Scheduler/updateTitlePromotionSchedule * * @param scheduler_id The ID of the promotion schedule. * @param data The data to update. * * @returns promise */ static testTone(scheduler_id: string, data: object, params?: Record): AxiosPromise>; /** * Get social media posts related to a promotion schedule. * * @see https://api.glitch.fun/api/documentation#/Scheduler/getPromotionScheduleSocialPosts * * @param scheduler_id The ID of the promotion schedule. * * @returns promise */ static getSchedulePosts(scheduler_id: string, params?: Record): AxiosPromise>; /** * Rewrite / generate content for a promotion schedule. * * @see https://api.glitch.fun/api/documentation#/Scheduler/generateTitleContent * * @param scheduler_id UUID of the promotion schedule. * @param data Body payload. At minimum you must supply * `{ platform: 'twitter' }` plus either `content` * **or** a `media` array containing at least one * `{ id: '' }`. * @returns Axios promise with `{ content, title? }` */ static generateTitleContent(scheduler_id: string, data: object, params?: Record): AxiosPromise>; /** * List title updates for a promotion schedule. * * @see https://api.glitch.fun/api/documentation#/Scheduler/getTitleUpdates * * @param scheduler_id The ID of the promotion schedule. * * @returns promise */ static listUpdates(scheduler_id: string, params?: Record): AxiosPromise>; /** * Search the updates related to a promotion schedule. * * @see https://api.glitch.fun/api/documentation#/Scheduler/searchTitleUpdates * * @param scheduler_id The ID of the promotion schedule. * * @returns promise */ static searchUpdates(scheduler_id: string, params?: Record): AxiosPromise>; /** * Create a new title update for a promotion schedule. * * @see https://api.glitch.fun/api/documentation#/Scheduler/createTitleUpdate * * @param scheduler_id The ID of the promotion schedule. * @param data The data for the new update. * * @returns promise */ static createUpdate(scheduler_id: string, data: object, params?: Record): AxiosPromise>; /** * Get a specific title update. * * @see https://api.glitch.fun/api/documentation#/Scheduler/getTitleUpdate * * @param scheduler_id The ID of the promotion schedule. * @param update_id The ID of the title update. * * @returns promise */ static getUpdate(scheduler_id: string, update_id: string, params?: Record): AxiosPromise>; /** * Update a title update. * * @see https://api.glitch.fun/api/documentation#/Scheduler/updateTitleUpdate * * @param scheduler_id The ID of the promotion schedule. * @param update_id The ID of the title update. * @param data The data to update. * * @returns promise */ static updateUpdate(scheduler_id: string, update_id: string, data: object, params?: Record): AxiosPromise>; /** * Delete a title update. * * @see https://api.glitch.fun/api/documentation#/Scheduler/deleteTitleUpdate * * @param scheduler_id The ID of the promotion schedule. * @param update_id The ID of the title update. * * @returns promise */ static deleteUpdate(scheduler_id: string, update_id: string, params?: Record): AxiosPromise>; /** * Schedule title update. * * @see https://api.glitch.fun/api/documentation#/Scheduler/updateTitleUpdate * * @param scheduler_id The ID of the promotion schedule. * @param update_id The ID of the title update. * @param data The data to update. * * @returns promise */ static scheduleUpdate(scheduler_id: string, update_id: string, data: object, params?: Record): AxiosPromise>; /** * Clear Twitter OAuth credentials from a promotion schedule. * * @param scheduler_id The ID of the promotion schedule. * @returns promise */ static clearTwitterAuth(scheduler_id: string, params?: Record): AxiosPromise>; /** * Clear Facebook OAuth credentials from a promotion schedule. * * @param scheduler_id The ID of the promotion schedule. * @returns promise */ static clearFacebookAuth(scheduler_id: string, params?: Record): AxiosPromise>; /** * Clear Instagram OAuth credentials from a promotion schedule. * * @param scheduler_id The ID of the promotion schedule. * @returns promise */ static clearInstagramAuth(scheduler_id: string, params?: Record): AxiosPromise>; /** * Clear Snapchat OAuth credentials from a promotion schedule. * * @param scheduler_id The ID of the promotion schedule. * @returns promise */ static clearSnapchatAuth(scheduler_id: string, params?: Record): AxiosPromise>; /** * Clear TikTok OAuth credentials from a promotion schedule. * * @param scheduler_id The ID of the promotion schedule. * @returns promise */ static clearTikTokAuth(scheduler_id: string, params?: Record): AxiosPromise>; /** * Clear Twitch OAuth credentials from a promotion schedule. * * @param scheduler_id The ID of the promotion schedule. * @returns promise */ static clearTwitchAuth(scheduler_id: string, params?: Record): AxiosPromise>; /** * Clear Kick OAuth credentials from a promotion schedule. * * @param scheduler_id The ID of the promotion schedule. * @returns promise */ static clearKickAuth(scheduler_id: string, params?: Record): AxiosPromise>; /** * Clear Reddit OAuth credentials from a promotion schedule. * * @param scheduler_id The ID of the promotion schedule. * @returns promise */ static clearRedditAuth(scheduler_id: string, params?: Record): AxiosPromise>; /** * Clear Reddit Ads OAuth credentials from a promotion schedule. * * @param scheduler_id The ID of the promotion schedule. * @returns promise */ static clearRedditAdsAuth(scheduler_id: string, params?: Record): AxiosPromise>; /** * Clear YouTube OAuth credentials from a promotion schedule. * * @param scheduler_id The ID of the promotion schedule. * @returns promise */ static clearYouTubeAuth(scheduler_id: string, params?: Record): AxiosPromise>; /** * Clear Patreon OAuth credentials from a promotion schedule. * * @param scheduler_id The ID of the promotion schedule. * @returns promise */ static clearPatreonAuth(scheduler_id: string, params?: Record): AxiosPromise>; /** * Clear Pinterest OAuth credentials from a promotion schedule. * * @param scheduler_id The ID of the promotion schedule. * @returns promise */ static clearPinterestAuth(scheduler_id: string, params?: Record): AxiosPromise>; /** * Clear Steam OAuth credentials from a promotion schedule. * * @param scheduler_id The ID of the promotion schedule. * @returns promise */ static clearSteamAuth(scheduler_id: string, params?: Record): AxiosPromise>; /** * Clear Discord OAuth credentials from a promotion schedule. * * @param scheduler_id The ID of the promotion schedule. * @returns promise */ static clearDiscordAuth(scheduler_id: string, params?: Record): AxiosPromise>; /** * Clear Bluesky OAuth credentials from a promotion schedule. * * @param scheduler_id The ID of the promotion schedule. * @returns promise */ static clearBlueskyAuth(scheduler_id: string, params?: Record): AxiosPromise>; /** * Get Facebook groups associated with the scheduler's Facebook account. * * @param scheduler_id The ID of the promotion schedule. * @returns promise */ static getFacebookGroups(scheduler_id: string, params?: Record): AxiosPromise>; /** * Get Instagram accounts associated with the scheduler's Instagram account. * * @param scheduler_id The ID of the promotion schedule. * @returns promise */ static getInstagramAccounts(scheduler_id: string, params?: Record): AxiosPromise>; /** * Get Reddit subreddits associated with the scheduler's Reddit account. * * @param scheduler_id The ID of the promotion schedule. * @returns promise */ static getRedditSubreddits(scheduler_id: string, params?: Record): AxiosPromise>; /** * Get flairs for a specific Reddit subreddit. * * @param scheduler_id The ID of the promotion schedule. * @param subreddit The name of the subreddit. * @returns promise */ static getRedditSubredditFlairs(scheduler_id: string, subreddit: string, params?: Record): AxiosPromise>; /** * Get posting rules for a specific Reddit subreddit. * * @param scheduler_id The ID of the promotion schedule. * @param subreddit The name of the subreddit. * @returns promise */ static getRedditSubredditRules(scheduler_id: string, subreddit: string, params?: Record): AxiosPromise>; /** * Get Discord channels associated with the scheduler's Discord account. * * @param scheduler_id The ID of the promotion schedule. * @returns promise */ static getDiscordChannels(scheduler_id: string, params?: Record): AxiosPromise>; /** * Search image and video attachments in the connected Discord server. * This call only returns remote candidates; it does not copy files into the * Library and does not create or schedule social posts. */ static searchDiscordMedia(scheduler_id: string, params?: DiscordMediaSearchParams): AxiosPromise>; /** * Import explicitly selected Discord attachments as pending, unscheduled * Library updates. Callers can group files by message or create one item * per file through title_update_mode. */ static importDiscordMedia(scheduler_id: string, data: DiscordMediaImportRequest, params?: Record): AxiosPromise>; /** Get the current user's personal Save to Glitch command setup state. */ static getDiscordUserCommandStatus(scheduler_id: string, params?: Record): AxiosPromise>; /** Disconnect the current user's personal command from this Library. */ static disconnectDiscordUserCommand(scheduler_id: string, params?: Record): AxiosPromise>; /** List messages saved through the user-installed Discord command. */ static listDiscordMediaCaptures(scheduler_id: string, params?: DiscordMediaCaptureListParams): AxiosPromise>; /** Import selected staged attachments into pending Library content. */ static importDiscordMediaCapture(scheduler_id: string, data: DiscordMediaCaptureImportRequest, params?: Record): AxiosPromise>; /** Dismiss one saved Discord message and delete its temporary staged files. */ static dismissDiscordMediaCapture(scheduler_id: string, capture_id: string, params?: Record): AxiosPromise>; /** * Clear Google Ads OAuth credentials from a promotion schedule. * * @param scheduler_id The ID of the promotion schedule. * @returns promise */ static clearGoogleAdsAuth(scheduler_id: string, params?: Record): AxiosPromise>; /** * Clear Tiktok Ads OAuth credentials from a promotion schedule. * * @param scheduler_id The ID of the promotion schedule. * @returns promise */ static clearTiktokAdsAuth(scheduler_id: string, params?: Record): AxiosPromise>; /** * Get aggregated reports for a promotion schedule. * * @param scheduler_id The ID of the promotion schedule. * @param params Query parameters (e.g., social_platform, start_date, end_date) * @returns promise */ static getSchedulerReports(scheduler_id: string, params?: Record): AxiosPromise>; /** * Get progression data for social media posts over time. * * @param scheduler_id The ID of the promotion schedule. * @param params Query parameters (e.g., social_platform, start_date, end_date) * @returns promise */ static getSchedulerProgression(scheduler_id: string, params?: Record): AxiosPromise>; /** * List cross-promote relationships for a scheduler (with optional pagination). * GET /schedulers/{scheduler_id}/crosspromote/relationships */ static crossPromoteListRelationships(scheduler_id: string, params?: Record): AxiosPromise>; /** * Find potential cross-promote partners for a scheduler (with optional filters). * GET /schedulers/{scheduler_id}/crosspromote/find */ static crossPromoteFind(scheduler_id: string, params?: Record): AxiosPromise>; /** * List cross-promote invites for a scheduler (incoming + outgoing). * GET /schedulers/{scheduler_id}/crosspromote/invites */ static crossPromoteInvitesList(scheduler_id: string, params?: Record): AxiosPromise>; /** * Send an invite to cross-promote (from scheduler_id to partner_scheduler_id). * POST /schedulers/{scheduler_id}/crosspromote/invites * * @param data { partner_scheduler_id, optional_message } */ static crossPromoteInviteSend(scheduler_id: string, data: object, params?: Record): AxiosPromise>; /** * Accept an invite to cross-promote. * POST /schedulers/{scheduler_id}/crosspromote/invites/{invite_id}/accept */ static crossPromoteInviteAccept(scheduler_id: string, invite_id: string, params?: Record): AxiosPromise>; /** * Reject an invite to cross-promote. * POST /schedulers/{scheduler_id}/crosspromote/invites/{invite_id}/reject */ static crossPromoteInviteReject(scheduler_id: string, invite_id: string, params?: Record): AxiosPromise>; /** * End a cross-promote relationship (delete). * DELETE /schedulers/{scheduler_id}/crosspromote/relationships/{relationship_id} */ static crossPromoteRelationshipDelete(scheduler_id: string, relationship_id: string, params?: Record): AxiosPromise>; /** * Get which platforms are cross-promoted in an existing relationship. * GET /schedulers/{scheduler_id}/crosspromote/relationships/{relationship_id}/platforms */ static crossPromoteRelationshipGetPlatforms(scheduler_id: string, relationship_id: string, params?: Record): AxiosPromise>; /** * Set which platforms are cross-promoted in an existing relationship. * PUT /schedulers/{scheduler_id}/crosspromote/relationships/{relationship_id}/platforms * data = { platforms: ['twitter','facebook',...]} */ static crossPromoteRelationshipSetPlatforms(scheduler_id: string, relationship_id: string, data: object, params?: Record): AxiosPromise>; /** * Get recently cross-promoted logs under a relationship. * GET /schedulers/{scheduler_id}/crosspromote/relationships/{relationship_id}/posts */ static crossPromoteRelationshipPosts(scheduler_id: string, relationship_id: string, params?: Record): AxiosPromise>; /** * Search cross-promote opportunities using the normalized route family. * GET /schedulers/cross-promote/search */ static crossPromoteSearch(params?: Record): AxiosPromise>; /** * Send a normalized cross-promote invitation. * POST /schedulers/cross-promote/invitations */ static crossPromoteInvitationSend(data: object, params?: Record): AxiosPromise>; /** * Respond to a normalized cross-promote invitation. * POST /schedulers/cross-promote/invitations/{invitation_id}/respond */ static crossPromoteInvitationRespond(invitation_id: string, data: object, params?: Record): AxiosPromise>; /** * List normalized cross-promote relationships. * GET /schedulers/cross-promote/relationships */ static crossPromoteRelationshipsList(params?: Record): AxiosPromise>; /** * End a normalized cross-promote relationship. * POST /schedulers/cross-promote/relationships/{relationship_id}/end */ static crossPromoteRelationshipEnd(relationship_id: string, params?: Record): AxiosPromise>; /** * List normalized cross-promote relationship logs. * GET /schedulers/cross-promote/relationships/{relationship_id}/logs */ static crossPromoteRelationshipLogs(relationship_id: string, params?: Record): AxiosPromise>; /** * List platform-level businesses for the given campaign ID, * as defined by /schedulers/{scheduler_id}/businesses on the backend. * * Typically relevant for Reddit (list businesses), or might return a * "not supported" message for Meta/TikTok. * * @param scheduler_id The UUID of the Ad Campaign * @param params Optional query parameters, e.g. page.size, etc. * @returns A response object with data (business list or messages) */ static listCampaignBusinesses(scheduler_id: string, params?: Record): AxiosPromise>; /** * List Ad Accounts for the given campaign ID, * as defined by /schedulers/{scheduler_id}/ad_accounts on the backend. * * E.g. for Reddit, you can pass ?business_id= to get business-level ad accounts, * or for Twitter, it might just return a user’s ad accounts, etc. * * @param scheduler_id The UUID of the Ad Campaign * @param params Optional query parameters, e.g. business_id, page.size, etc. * @returns A response object with data (ad account list) */ static listCampaignAdAccounts(scheduler_id: string, params?: Record): AxiosPromise>; /** * List funding instruments for the given campaign ID, * as defined by /schedulers/{scheduler_id}/funding_instruments on the backend. * * For Twitter, pass ?account_id=... * For Reddit, pass ?ad_account_id=... or ?business_id=... * * @param scheduler_id The UUID of the Ad Campaign * @param params Optional query parameters * @returns A response object with data (funding instruments) */ static listCampaignFundingInstruments(scheduler_id: string, params?: Record): AxiosPromise>; /** * List Google Ads conversion actions available to a scheduler account. * GET /schedulers/{scheduler_id}/conversion-actions */ static listConversionActions(scheduler_id: string, params?: Record): AxiosPromise>; /** * List all destinations for a title update. * * @see https://api.glitch.fun/api/documentation#/Scheduler/listTitleUpdateDestinations * * @param scheduler_id The ID of the promotion schedule. * @param update_id The ID of the title update. * @returns promise */ static listDestinations(scheduler_id: string, update_id: string, params?: Record): AxiosPromise>; /** * Create a new destination for a title update. * * @see https://api.glitch.fun/api/documentation#/Scheduler/createTitleUpdateDestination * * @param scheduler_id The ID of the promotion schedule. * @param update_id The ID of the title update. * @param data The data for the new destination. * @returns promise */ static createDestination(scheduler_id: string, update_id: string, data: object, params?: Record): AxiosPromise>; /** * Get a specific title update destination. * * @see https://api.glitch.fun/api/documentation#/Scheduler/getTitleUpdateDestination * * @param scheduler_id The ID of the promotion schedule. * @param update_id The ID of the title update. * @param destination_id The ID of the destination. * @returns promise */ static getDestination(scheduler_id: string, update_id: string, destination_id: string, params?: Record): AxiosPromise>; /** * Update a title update destination. * * @see https://api.glitch.fun/api/documentation#/Scheduler/updateTitleUpdateDestination * * @param scheduler_id The ID of the promotion schedule. * @param update_id The ID of the title update. * @param destination_id The ID of the destination. * @param data The data to update. * @returns promise */ static updateDestination(scheduler_id: string, update_id: string, destination_id: string, data: object, params?: Record): AxiosPromise>; /** * Delete a title update destination. * * @see https://api.glitch.fun/api/documentation#/Scheduler/deleteTitleUpdateDestination * * @param scheduler_id The ID of the promotion schedule. * @param update_id The ID of the title update. * @param destination_id The ID of the destination. * @returns promise */ static deleteDestination(scheduler_id: string, update_id: string, destination_id: string, params?: Record): AxiosPromise>; /** * Get subreddit recommendations for a scheduler. * * @see https://api.glitch.fun/api/documentation#/Scheduler/getSchedulerRedditRecommendations * * @param scheduler_id The ID of the promotion schedule. * @param data The context for the post (title, content, media type). * @returns promise */ static getRedditRecommendations(scheduler_id: string, data: object, params?: Record): AxiosPromise>; /** * Generate tailored content for a specific subreddit. * * @see https://api.glitch.fun/api/documentation#/Scheduler/generateRedditContentForSubreddit * * @param scheduler_id The ID of the promotion schedule. * @param data The target subreddit and post context. * @returns promise */ static generateRedditContent(scheduler_id: string, data: object, params?: Record): AxiosPromise>; /** * Match the scheduler title to indexed Reddit communities. * * @param scheduler_id The ID of the promotion schedule. * @param data Optional post context and filters. * @returns promise */ static getRedditSubredditMatches(scheduler_id: string, data?: object, params?: Record): AxiosPromise>; /** * Position a registered game for a subreddit and optionally prepare Reddit draft content. * * @param scheduler_id The ID of the promotion schedule. * @param data The target subreddit and optional post context. * @returns promise */ static getRedditSubredditPositioning(scheduler_id: string, data: object, params?: Record): AxiosPromise>; /** * Get all posts and comments for a scheduler. * * @param scheduler_id The ID of the promotion schedule. * @param params Optional query parameters for filtering and sorting. * @returns promise */ static getSchedulerPostsWithComments(scheduler_id: string, params?: Record): AxiosPromise>; /** * Sync all comments for all posts in a scheduler. * * @param scheduler_id The ID of the promotion schedule. * @param params Optional query parameters (e.g., limit_per_post). * @returns promise */ static syncAllSchedulerComments(scheduler_id: string, params?: Record): AxiosPromise>; /** * Get ad conversion actions for a specific platform linked to the scheduler. * * @see https://api.glitch.fun/api/documentation#/Scheduler/getSchedulerConversionActions * * @param scheduler_id The ID of the promotion schedule. * @param params Query parameters, including 'platform' (required) and 'account_id' (optional). * * @returns promise */ static getConversionActions(scheduler_id: string, params: { platform: string; account_id?: string; }): AxiosPromise>; /** * Send a platform test conversion event through the backend scheduler route. * * @param scheduler_id The ID of the promotion schedule. * @param platform Platform key, e.g. reddit, tiktok, facebook, google. * @param params Query parameters such as Reddit test_id or Meta test_event_code. */ static sendTestConversionEvent(scheduler_id: string, platform: string, params?: Record): AxiosPromise>; /** * Trigger a historical sync for a specific platform on a scheduler. * * @see https://api.glitch.fun/api/documentation#/Scheduler/syncHistory * * @param scheduler_id The ID of the promotion schedule. * @param platform The platform to sync (e.g., 'twitter', 'youtube', 'bluesky'). * * @returns promise */ static syncHistory(scheduler_id: string, platform: string, params?: Record): AxiosPromise>; /** * Generate hashtags for content based on scheduler settings. * * @param scheduler_id The ID of the promotion schedule. * @param data { content: string, platform?: string } * * @returns promise */ static generateHashtags(scheduler_id: string, data: object, params?: Record): AxiosPromise>; /** * Get TikTok hashtag suggestions based on a keyword. * * @param scheduler_id The ID of the promotion schedule. * @param params { keyword: string } */ static getTikTokHashtags(scheduler_id: string, params: { keyword: string; }): AxiosPromise>; /** * Get trending commercial music from TikTok's library. * * @param scheduler_id The ID of the promotion schedule. */ static getTikTokMusic(scheduler_id: string, params?: Record): AxiosPromise>; /** * Get TikTok Music List with advanced filtering (Keyword, Recommendations, Liked). * @param params { music_scene: 'CREATIVE_ASSET'|'CAROUSEL_ADS', search_type: string, filtering: object } */ static getTikTokMusicList(scheduler_id: string, params?: Record): AxiosPromise>; /** * Get the top 200 trending hashtags on TikTok. * @param params { country_code: string, category_name: string, date_range: string } */ static getTikTokTrendingHashtags(scheduler_id: string, params?: Record): AxiosPromise>; /** * Get trending search keywords on TikTok. * @param params { is_personalized: boolean } */ static getTikTokTrendingKeywords(scheduler_id: string, params?: Record): AxiosPromise>; /** * Get recommended search keywords on TikTok. * @param params { is_personalized: boolean } */ static getTikTokRecommendedKeywords(scheduler_id: string, params?: Record): AxiosPromise>; } declare class RedditSubreddits { /** * Search indexed Reddit communities for game marketing research. * * @see https://api.glitch.fun/api/documentation#/Reddit%20Subreddit%20Intelligence/indexRedditSubreddits */ static list(params?: Record): AxiosPromise>; /** * Get an analyzed subreddit record by display name. * * @see https://api.glitch.fun/api/documentation#/Reddit%20Subreddit%20Intelligence/showRedditSubreddit */ static show(subreddit: string, params?: Record): AxiosPromise>; /** * Match a game concept to relevant Reddit communities. * * @see https://api.glitch.fun/api/documentation#/Reddit%20Subreddit%20Intelligence/matchRedditSubreddits */ static match(data: object, params?: Record): AxiosPromise>; /** * Match one of the authenticated user's administered titles to Reddit communities. * * @see https://api.glitch.fun/api/documentation#/Reddit%20Subreddit%20Intelligence/titleRedditSubredditMatches */ static matchTitle(title_id: string, data?: object, params?: Record): AxiosPromise>; /** * Admin-only ingestion of subreddit metadata and rules. * * @see https://api.glitch.fun/api/documentation#/Reddit%20Subreddit%20Intelligence/ingestRedditSubreddits */ static ingest(data: object, params?: Record): AxiosPromise>; /** * Admin-only refresh for one subreddit. * * @see https://api.glitch.fun/api/documentation#/Reddit%20Subreddit%20Intelligence/refreshRedditSubreddit */ static refresh(subreddit: string, data?: object, params?: Record): AxiosPromise>; } declare class Funnel { /** * Get funnel metrics. * * @see https://api.glitch.fun/api/documentation#/Funnel%20Metrics/get_funnels * * @param params Query parameters for filtering (title_id, community_id, start_date, end_date) * @returns Promise with funnel metrics data */ static index(params?: Record): AxiosPromise>; /** * Get funnel-optimized metrics. * * @see https://api.glitch.fun/api/documentation#/Funnel%20Metrics/get_funnels_funnel * * @param params Query parameters for filtering (title_id, community_id, start_date, end_date) * @returns Promise with funnel data optimized for visual funnels */ static funnel(params?: Record): AxiosPromise>; /** * Get available metrics. * * @see https://api.glitch.fun/api/documentation#/Funnel%20Metrics/get_funnels_metrics * * @returns Promise with list of available metrics */ static metrics(): AxiosPromise>; /** * Get available stages. * * @see https://api.glitch.fun/api/documentation#/Funnel%20Metrics/get_funnels_stages * * @returns Promise with list of available stages */ static stages(): AxiosPromise>; /** * Get daily funnel metrics. * * @see https://api.glitch.fun/api/documentation#/Funnel%20Metrics/get_funnels_daily * * @param params Query parameters for filtering (title_id, community_id, start_date, end_date) * @returns Promise with daily funnel metrics data */ static daily(params?: Record): AxiosPromise>; /** * Get monthly funnel metrics. * * @see https://api.glitch.fun/api/documentation#/Funnel%20Metrics/get_funnels_monthly * * @param params Query parameters for filtering (title_id, community_id, start_date, end_date) * @returns Promise with monthly funnel metrics data */ static monthly(params?: Record): AxiosPromise>; /** * Get yearly funnel metrics. * * @see https://api.glitch.fun/api/documentation#/Funnel%20Metrics/get_funnels_yearly * * @param params Query parameters for filtering (title_id, community_id, start_date, end_date) * @returns Promise with yearly funnel metrics data */ static yearly(params?: Record): AxiosPromise>; /** * Get gamified funnel metrics with recommended targets, scores, and ranks. * * @see https://api.glitch.fun/api/documentation#/Funnel%20Metrics/get_funnels_gamify * * @param params Query parameters (title_id, community_id, start_date, end_date) * @returns Promise with the gamified funnel data */ static gamify(params?: Record): AxiosPromise>; /** * Get comprehensive funnel diagnostic report. * * @see https://api.glitch.fun/api/documentation#/Funnel%20Metrics/get_funnels_diagnostic * * @param params Query parameters: * - title_id (string): Required * - start_date (string): Required (YYYY-MM-DD) * - end_date (string): Required (YYYY-MM-DD) * - group_by (string): Optional ('none', 'platform', 'utm_source') * * @returns Promise with diagnostic data including conversion rates, costs, and health indicators */ static diagnostic(params: Record): AxiosPromise>; } declare class SocialStats { /** * List all the social media account statistics, with optional filters. * @see https://api.glitch.fun/api/documentation#/SocialMediaAccountStatistics * * @param params Optional query parameters: * - platform (string | string[]): Filter by platform(s) * - start_date (string): Filter records created on or after this date (YYYY-MM-DD) * - end_date (string): Filter records created on or before this date (YYYY-MM-DD) * - user_id (string): Filter by user ID * - title_promotion_schedule_id (string): Filter by TitlePromotionSchedule ID * @returns promise */ static list(params?: Record): AxiosPromise>; /** * Get platform-level statistics, such as average follower count per platform. * @see https://api.glitch.fun/api/documentation#/SocialMediaAccountStatistics/platformStatistics * * @returns promise */ static platformStatistics(params?: Record): AxiosPromise>; /** * Generate various reports for social media account statistics. * @see https://api.glitch.fun/api/documentation#/SocialMediaAccountStatistics/reports * * @param params Query parameters: * - report_type (string): Required (e.g. average_followers, growth, platform_breakdown) * - platform (string or string[]): Filter by platform(s) * - start_date (string): Filter from date (YYYY-MM-DD) * - end_date (string): Filter to date (YYYY-MM-DD) * - user_id (string): Filter by user ID * - title_promotion_schedule_id (string): Filter by schedule ID * * @returns promise */ static reports(params: Record): AxiosPromise>; /** * Retrieve a single social media account statistic record by its ID. * @see https://api.glitch.fun/api/documentation#/SocialMediaAccountStatistics/show * * @param id The ID of the statistic record. * @returns promise */ static view(id: string, params?: Record): AxiosPromise>; } declare class Hashtags { /** * List all the hashtags * * * @returns A promise */ static list(params?: Record): AxiosPromise>; /** * Get the top hashtags for a title, campaign, or schedule. * * @param params - e.g. { title_id: '...', limit: 10, sort: 'sum_views', start_date: 'YYYY-MM-DD', end_date: 'YYYY-MM-DD' } * @returns AxiosPromise of an array of aggregated hashtags */ static top(params?: Record): AxiosPromise>; } declare class WebsiteAnalytics { /** * List website analytics sessions with comprehensive filtering * * @param params Filtering options: * - title_id?: string - Filter by title ID * - start_date?: string - Start date (YYYY-MM-DD) * - end_date?: string - End date (YYYY-MM-DD) * - device_type?: 'desktop'|'mobile'|'tablet'|'bot'|'other' * - country_code?: string - 2-letter country code * - is_bot?: boolean - Filter by bot status * - sort?: 'started_at'|'total_duration'|'pageview_count' - Sort field * - order?: 'asc'|'desc' - Sort order * - per_page?: number - Items per page (max 100) * @returns Promise with paginated sessions data */ static listSessions(params?: Record): AxiosPromise>; /** * Get a paginated list of pageviews with filtering options * * @param params Filtering options: * - title_id?: string - Filter by title ID * - analytics_session_id?: string - Filter by session ID * - start_date?: string - Start date (YYYY-MM-DD) * - end_date?: string - End date (YYYY-MM-DD) * - is_exit?: boolean - Filter by exit pageviews * - sort?: 'occurred_at'|'load_time_ms'|'dom_complete_ms' - Sort field * - order?: 'asc'|'desc' - Sort order * - per_page?: number - Items per page (max 100) * @returns Promise with paginated pageviews data */ static listPageviews(params?: Record): AxiosPromise>; /** * Get a paginated list of events with filtering options * * @param params Filtering options: * - title_id?: string - Filter by title ID * - analytics_session_id?: string - Filter by session ID * - event_name?: string - Filter by event name * - event_category?: string - Filter by event category * - start_date?: string - Start date (YYYY-MM-DD) * - end_date?: string - End date (YYYY-MM-DD) * - sort?: 'occurred_at'|'event_name' - Sort field * - order?: 'asc'|'desc' - Sort order * - per_page?: number - Items per page (max 100) * @returns Promise with paginated events data */ static listEvents(params?: Record): AxiosPromise>; /** * Get an analytics overview with summarized metrics * * @param params Overview options: * - title_id: string - Required title ID * - start_date?: string - Start date (YYYY-MM-DD) * - end_date?: string - End date (YYYY-MM-DD) * - group_by?: 'day'|'week'|'month'|'year' - Grouping period * - include_breakdowns?: boolean - Include detailed breakdowns * @returns Promise with overview data */ static overview(params: Record): AxiosPromise>; /** * Single ingestion endpoint for sessions, pageviews and events * * @param data Analytics data payload with type property: * - type: 'session'|'pageview'|'event' - Type of analytics data * - title_id: string - Title ID * - tracking_token: string - HMAC token for verification * - plus type-specific fields * @returns Promise with acceptance response */ static collect(data: object): AxiosPromise>; /** * Get average session length data with optional grouping * * @param params Filtering options: * - title_id?: string - Filter by title ID * - start_date?: string - Start date (YYYY-MM-DD) * - end_date?: string - End date (YYYY-MM-DD) * - group_by?: 'day'|'week'|'month' - Grouping period * - device_type?: string - Filter by device type * - country_code?: string - Filter by country * @returns Promise with average session data */ static sessionsAverage(params?: Record): AxiosPromise>; /** * Get session duration histogram data * * @param params Filtering options: * - title_id?: string - Filter by title ID * - start_date?: string - Start date (YYYY-MM-DD) * - end_date?: string - End date (YYYY-MM-DD) * - bucket_size?: number - Duration bucket size in seconds * @returns Promise with histogram data */ static sessionsHistogram(params?: Record): AxiosPromise>; /** * Get pageviews over time with optional grouping * * @param params Filtering options: * - title_id?: string - Filter by title ID * - start_date?: string - Start date (YYYY-MM-DD) * - end_date?: string - End date (YYYY-MM-DD) * - group_by?: 'hour'|'day'|'week'|'month' - Grouping period * - path?: string - Filter by specific path * @returns Promise with pageviews over time data */ static pageviewsOverTime(params?: Record): AxiosPromise>; /** * Get top pages by views * * @param params Filtering options: * - title_id?: string - Filter by title ID * - start_date?: string - Start date (YYYY-MM-DD) * - end_date?: string - End date (YYYY-MM-DD) * - limit?: number - Number of top pages to return * @returns Promise with top pages data */ static topPages(params?: Record): AxiosPromise>; /** * Get summary of events * * @param params Filtering options: * - title_id?: string - Filter by title ID * - start_date?: string - Start date (YYYY-MM-DD) * - end_date?: string - End date (YYYY-MM-DD) * - event_category?: string - Filter by event category * @returns Promise with events summary data */ static eventsSummary(params?: Record): AxiosPromise>; /** * Get most popular events * * @param params Filtering options: * - title_id?: string - Filter by title ID * - start_date?: string - Start date (YYYY-MM-DD) * - end_date?: string - End date (YYYY-MM-DD) * - limit?: number - Number of events to return * @returns Promise with popular events data */ static popularEvents(params?: Record): AxiosPromise>; /** * Get geographic distribution of visitors * * @param params Filtering options: * - title_id?: string - Filter by title ID * - start_date?: string - Start date (YYYY-MM-DD) * - end_date?: string - End date (YYYY-MM-DD) * - limit?: number - Number of countries to return * @returns Promise with geo distribution data */ static geoDistribution(params?: Record): AxiosPromise>; /** * Get device type breakdown * * @param params Filtering options: * - title_id?: string - Filter by title ID * - start_date?: string - Start date (YYYY-MM-DD) * - end_date?: string - End date (YYYY-MM-DD) * @returns Promise with device breakdown data */ static deviceBreakdown(params?: Record): AxiosPromise>; /** * Get top referrers * * @param params Filtering options: * - title_id?: string - Filter by title ID * - start_date?: string - Start date (YYYY-MM-DD) * - end_date?: string - End date (YYYY-MM-DD) * - limit?: number - Number of referrers to return * @returns Promise with referrers data */ static referrers(params?: Record): AxiosPromise>; /** * Get UTM campaign performance * * @param params Filtering options: * - title_id?: string - Filter by title ID * - start_date?: string - Start date (YYYY-MM-DD) * - end_date?: string - End date (YYYY-MM-DD) * - group_by?: 'source'|'medium'|'campaign' - Grouping field * @returns Promise with UTM performance data */ static utmPerformance(params?: Record): AxiosPromise>; /** * Get a combined user journey across short link clicks, web sessions, game installations, etc. * * @param params Filtering options. All are optional except `title_id`. * - title_id: string Required. The UUID of the title to unify user events. * - device_id?: string Filter by device ID * - session_id?: string Filter by session ID * - short_link_click_id?: string Filter by short link click ID * - user_install_id?: string Filter by game install user_install_id * - browser_fingerprint?: string Filter by browser fingerprint hash * - hardware_fingerprint?: string Filter by hardware fingerprint hash * - start_date?: string Optional. Start date (YYYY-MM-DD) if your API supports time limiting * - end_date?: string Optional. End date (YYYY-MM-DD) if your API supports time limiting * * @returns Promise with a unified timeline of the user’s journey, in chronological order. */ static userJourney(params: Record): AxiosPromise>; /** * Get a detailed marketing report for the game's landing page. * Includes scroll depth, video watch time distribution, and CTA performance. * * @param params * - title_id: string (Required) * - start_date?: string (YYYY-MM-DD) * - end_date?: string (YYYY-MM-DD) * - group_by?: 'country' | 'device' */ static landingPageReport(params: Record): AxiosPromise>; } declare class ShortLinks { /** * List all short links with optional filters */ static list(params?: Record): AxiosPromise>; /** * Create a new short link */ static create(data: object, params?: Record): AxiosPromise>; /** * Get a specific short link by ID */ static view(id: string, params?: Record): AxiosPromise>; /** * Update a short link */ static update(id: string, data: object, params?: Record): AxiosPromise>; /** * Get click-summary report * - Example usage: ShortLinks.clickSummary({ short_link_id: 'uuid-here' }) */ static clickSummary(params?: Record): AxiosPromise>; /** * Get geo & device breakdown report * - Example usage: ShortLinks.geoDeviceBreakdown({ short_link_id: 'uuid-here' }) */ static geoDeviceBreakdown(params?: Record): AxiosPromise>; /** * Get time-series report * - Example usage: ShortLinks.timeSeries({ short_link_id: 'uuid-here', group_by: 'day' }) */ static timeSeries(params?: Record): AxiosPromise>; /** * Get referrer & UTM report * - Example usage: ShortLinks.referrerReport({ short_link_id: 'uuid-here' }) */ static referrerReport(params?: Record): AxiosPromise>; static campaignPerformance(params?: Record): AxiosPromise>; static influencerPerformance(params?: Record): AxiosPromise>; static socialPostPerformance(params?: Record): AxiosPromise>; static conversionFunnel(params?: Record): AxiosPromise>; static clickHeatmap(params?: Record): AxiosPromise>; static botAnalysis(params?: Record): AxiosPromise>; static attributionReport(params?: Record): AxiosPromise>; static socialPostDeepDive(params?: Record): AxiosPromise>; static socialPostContentAnalysis(params?: Record): AxiosPromise>; static socialPostEngagementBreakdown(params?: Record): AxiosPromise>; static socialPostTrackingEffectiveness(params?: Record): AxiosPromise>; } declare class AIUsage { /** * List all AI usage entries with optional filters (date range, service, model, etc.). * * @see https://api.glitch.fun/api/documentation#/AI%20Usage/getAIUsage * * @param params Query parameters for filtering and grouping * @returns AxiosPromise */ static list(params?: Record): AxiosPromise>; /** * Get summarized AI usage statistics (token totals, cost, grouped by service/model). * * @see https://api.glitch.fun/api/documentation#/AI%20Usage/getAIUsageSummary * * @param params Query parameters for filtering by date range * @returns AxiosPromise */ static summary(params?: Record): AxiosPromise>; } declare class MarketingAgencies { /** * List all marketing agencies. * * @see https://api.glitch.fun/api/documentation#/Marketing%20Agencies/getMarketing-agencies * * @param params Optional query parameters (e.g., is_admin, sort_by, sort_order, page, per_page). * @returns promise */ static list(params?: Record): AxiosPromise>; /** * Create a new marketing agency. * * @see https://api.glitch.fun/api/documentation#/Marketing%20Agencies/postMarketing-agencies * * @param data The data for the new agency. * @returns Promise */ static create(data: object): AxiosPromise>; /** * Retrieve a single marketing agency by its ID. * * @see https://api.glitch.fun/api/documentation#/Marketing%20Agencies/getMarketing-agencies-id * * @param id The UUID of the agency to retrieve. * @returns promise */ static view(id: string): AxiosPromise>; /** * Update a marketing agency. * * @see https://api.glitch.fun/api/documentation#/Marketing%20Agencies/putMarketing-agencies-id * * @param id The UUID of the agency to update. * @param data The data to update. * @returns promise */ static update(id: string, data: object): AxiosPromise>; /** * Deletes a marketing agency. * * @see https://api.glitch.fun/api/documentation#/Marketing%20Agencies/deleteMarketing-agencies-id * * @param id The UUID of the agency to delete. * @returns promise */ static delete(id: string): AxiosPromise>; /** * Add a user as an administrator to an agency. * * @see https://api.glitch.fun/api/documentation#/Marketing%20Agencies/postMarketing-agencies-id-administrators * * @param id The UUID of the agency. * @param data The data containing the user_id to add. * @returns Promise */ static addAdministrator(id: string, data: { user_id: string; }): AxiosPromise>; /** * Remove a user as an administrator from an agency. * * @see https://api.glitch.fun/api/documentation#/Marketing%20Agencies/deleteMarketing-agencies-id-administrators-user_id * * @param id The UUID of the agency. * @param user_id The UUID of the user to remove. * @returns Promise */ static removeAdministrator(id: string, user_id: string): AxiosPromise>; /** * Set the logo for an agency. * * @see https://api.glitch.fun/api/documentation#/Marketing%20Agencies/postMarketing-agencies-id-logo * * @param id The UUID of the agency. * @param data The data containing the media_id for the logo. * @returns Promise */ static setLogo(id: string, data: { media_id: string; }): AxiosPromise>; /** * Add a case study to an agency. * * @see https://api.glitch.fun/api/documentation#/Marketing%20Agencies/postMarketing-agencies-id-case-studies * * @param id The UUID of the agency. * @param data The data containing the media_id and optional order. * @returns Promise */ static addCaseStudy(id: string, data: { media_id: string; order?: number; }): AxiosPromise>; /** * Remove a case study from an agency. * * @see https://api.glitch.fun/api/documentation#/Marketing%20Agencies/deleteMarketing-agencies-id-case-studies-media_id * * @param id The UUID of the agency. * @param media_id The UUID of the media to remove. * @returns Promise */ static removeCaseStudy(id: string, media_id: string): AxiosPromise>; /** * Update the order of case studies for an agency. * * @see https://api.glitch.fun/api/documentation#/Marketing%20Agencies/postMarketing-agencies-id-case-studies-order * * @param id The UUID of the agency. * @param order_data An array of objects with media_id and new order. * @returns Promise */ static updateCaseStudyOrder(id: string, order_data: { media_id: string; order: number; }[]): AxiosPromise>; /** * Invite a user to become an administrator of an agency. * * @see https://api.glitch.fun/api/documentation#/Marketing%20Agencies/postMarketing-agencies-id-invites * * @param id The UUID of the agency. * @param data The data containing the email of the user to invite. * @returns Promise */ static invite(id: string, data: { email: string; }): AxiosPromise>; /** * List all pending invitations for an agency. * * @see https://api.glitch.fun/api/documentation#/Marketing%20Agencies/getMarketing-agencies-id-invites * * @param id The UUID of the agency. * @returns Promise */ static listInvites(id: string): AxiosPromise>; /** * Revoke a pending invitation. * * @see https://api.glitch.fun/api/documentation#/Marketing%20Agencies/deleteMarketing-agencies-id-invites-invite_id * * @param id The UUID of the agency. * @param invite_id The UUID of the invitation to revoke. * @returns Promise */ static revokeInvite(id: string, invite_id: string): AxiosPromise>; /** * Get the details of a pending invitation using its token. * * @see https://api.glitch.fun/api/documentation#/Marketing%20Agencies/getMarketing-agencies-invites-details * * @param params An object containing the token. * @returns Promise */ static getInviteDetails(params: { token: string; }): AxiosPromise>; /** * Accept an invitation to become an administrator. * * @see https://api.glitch.fun/api/documentation#/Marketing%20Agencies/postMarketing-agencies-invites-accept * * @param data The data containing the invitation token. * @returns Promise */ static acceptInvite(data: { token: string; }): AxiosPromise>; } declare class TwitchReporting { /** * Get a streamer's Concurrent Viewership (CCV) history. * * @see https://api.glitch.fun/api/documentation#/Twitch%20Reporting/getCreatorCcvHistory * * @param twitch_streamer_id The ID of the Twitch streamer. * @param params Optional query parameters for filtering (e.g., start_date, end_date, per_page). * * @returns promise */ static getCreatorCcvHistory(twitch_streamer_id: string, params?: Record): AxiosPromise>; /** * Get a summary of game performance metrics. * * @see https://api.glitch.fun/api/documentation#/Twitch%20Reporting/getGamesSummary * * @param params Optional query parameters for filtering and sorting (e.g., start_date, end_date, sort_by, limit). * * @returns promise */ static getGamesSummary(params?: Record): AxiosPromise>; /** * Get most recently active streamers. * * @see https://api.glitch.fun/api/documentation#/Twitch%20Reporting/getMostActiveStreamers * * @param params Optional query parameters (e.g., limit). * * @returns promise */ static getMostActiveStreamers(params?: Record): AxiosPromise>; /** * Get most recently streamed games. * * @see https://api.glitch.fun/api/documentation#/Twitch%20Reporting/getMostActiveGames * * @param params Optional query parameters (e.g., limit). * * @returns promise */ static getMostActiveGames(params?: Record): AxiosPromise>; /** * Discover the most active Twitch games with Steam/IGDB genre, category, * theme, live snapshot, and trend metrics. * * @see https://api.glitch.fun/api/documentation#/Twitch%20Reporting/discoverActiveTwitchGames * * @param params Optional query parameters (e.g., genres, categories, match_mode, trend_days, sort_by, limit). * * @returns promise */ static discoverActiveGames(params?: Record): AxiosPromise>; /** * Get top streamers by performance (average or peak CCV). * * @see https://api.glitch.fun/api/documentation#/Twitch%20Reporting/getTopStreamers * * @param params Optional query parameters for filtering and sorting (e.g., sort_by, start_date, limit). * * @returns promise */ static getTopStreamers(params?: Record): AxiosPromise>; /** * Get a streamer's typical streaming schedule as a heatmap. * * @see https://api.glitch.fun/api/documentation#/Twitch%20Reporting/getCreatorStreamingSchedule * * @param twitch_streamer_id The ID of the Twitch streamer. * * @returns promise */ static getCreatorStreamingSchedule(twitch_streamer_id: string): AxiosPromise>; /** * Get a list of games played by a specific streamer. * * @param twitch_streamer_id The ID of the Twitch streamer. * @returns promise */ static getStreamerGameHistory(twitch_streamer_id: string): AxiosPromise>; /** * Get a paginated list of streamers who played a specific game. * * @param game_name The URL-encoded name of the game. * @param params Optional query parameters for pagination (e.g., page, per_page). * @returns promise */ static getStreamersForGame(game_name: string, params?: Record): AxiosPromise>; } declare class Raffles { /** * List all raffles with optional filters. */ static list(params?: Record): AxiosPromise>; /** * Create a new raffle (Game Owner). */ static create(data: object): AxiosPromise>; /** * Retrieve details for a specific raffle. */ static view(id: string): AxiosPromise>; /** * Enter a raffle (User/Player). Requires Steam ID. */ static enter(id: string, data: { referral_code?: string; device_fingerprint?: string; opt_in_playtesting?: boolean; }): AxiosPromise>; /** * Get the authenticated user's entry status for a specific raffle. */ static me(id: string): AxiosPromise>; /** * Record a viral action (e.g., Steam Wishlist, Social Share). */ static performAction(id: string, data: { action_type: string; platform?: string; reference_id?: string; }): AxiosPromise>; /** * Post raffle content to social media via Glitch API. */ static shareSocially(id: string, data: { platform: string; content: string; }): AxiosPromise>; /** * Send an invitation email to a friend. */ static inviteFriend(id: string, data: { email: string; }): AxiosPromise>; /** * Add a prize tier to a raffle (Game Owner). */ static addPrize(id: string, data: object): AxiosPromise>; /** * Trigger the automated drawing process (Game Owner). */ static drawWinners(id: string): AxiosPromise>; /** * Manually select a winner for a specific prize (Live Event Mode). */ static pickWinner(id: string, data: { entry_id: string; prize_id: string; }): AxiosPromise>; /** * Get the public list of winners for a completed raffle. */ static winners(id: string): AxiosPromise>; /** * List all participants/entries for a raffle (Game Owner). */ static participants(id: string, params?: Record): AxiosPromise>; /** * Update shipping/tracking info for a prize (Game Owner). */ static fulfillPrize(entry_id: string, data: { tracking_number: string; shipping_carrier: string; }): AxiosPromise>; /** * Submit shipping address for a won prize (User/Winner). */ static updateAddress(entry_id: string, data: object): AxiosPromise>; /** * Disqualify a specific entry (Game Owner). */ static disqualify(id: string, entry_id: string, data: { reason: string; }): AxiosPromise>; /** * Check if the raffle is fully funded in the community ledger. */ static escrowStatus(id: string): AxiosPromise>; /** * Get viral loop analytics (K-Factor, Cost Per Entry). */ static analytics(id: string): AxiosPromise>; /** * Update a raffle (Game Owner). * Handles status transitions (e.g., moving from draft to active). */ static update(id: string, data: object): AxiosPromise>; } declare class DiscordMarketplace { /** * Search for Discord servers available for sponsorship. */ static listListings(params?: Record): AxiosPromise>; /** * List a Discord server in the marketplace (Owner). */ static createListing(data: object): AxiosPromise>; /** * Get details for a specific server listing. */ static viewListing(id: string): AxiosPromise>; /** * Update listing settings like price or auto-approve (Owner). */ static updateListing(id: string, data: object): AxiosPromise>; /** * Remove a server from the marketplace (Owner). */ static deleteListing(id: string): AxiosPromise>; /** * List sponsored post orders. Use params { mode: 'buyer' | 'seller' }. */ static listOrders(params?: Record): AxiosPromise>; /** * Submit a post to a Discord server for sponsorship (Game Developer). */ static createOrder(data: object): AxiosPromise>; /** * Get details for a specific order. */ static viewOrder(id: string): AxiosPromise>; /** * Approve and publish a sponsored post (Owner). */ static approveOrder(id: string): AxiosPromise>; /** * Reject a sponsored post (Owner). */ static rejectOrder(id: string, data: { reason: string; }): AxiosPromise>; /** * Request changes to the post content (Owner). */ static requestChanges(id: string, data: { reason: string; }): AxiosPromise>; /** * Resubmit a post after making requested changes (Game Developer). */ static resubmitOrder(id: string): AxiosPromise>; /** * Get available text channels for a specific Discord listing. */ static getChannels(id: string): AxiosPromise>; } declare class Education { static listCategories(params?: object): AxiosPromise>; static viewCategory(uuid: string, params?: object): AxiosPromise>; static createCategory(data: object): AxiosPromise>; static updateCategory(uuid: string, data: object): AxiosPromise>; static deleteCategory(uuid: string): AxiosPromise>; static listTracks(params?: object): AxiosPromise>; static viewTrack(uuid: string): AxiosPromise>; static createTrack(data: object): AxiosPromise>; static updateTrack(uuid: string, data: object): AxiosPromise>; static deleteTrack(uuid: string): AxiosPromise>; static registerForTrack(uuid: string): AxiosPromise>; static myTracks(): AxiosPromise>; static getTrackAnalytics(uuid: string): AxiosPromise>; static listContent(params?: object): AxiosPromise>; static viewContent(uuid: string, params?: object): AxiosPromise>; static createContent(data: object): AxiosPromise>; static updateContent(uuid: string, data: object): AxiosPromise>; static deleteContent(uuid: string): AxiosPromise>; static heartbeat(uuid: string, data: object): AxiosPromise>; static getSecureVideo(uuid: string): AxiosPromise>; static getPreviewSecureVideo(uuid: string): AxiosPromise>; static listAllProgress(params?: object): AxiosPromise>; static listTrackContent(track_id: string): AxiosPromise>; static addContentToTrack(track_id: string, data: object): AxiosPromise>; static removeContentFromTrack(track_id: string, content_id: string): AxiosPromise>; static reorderTrackContent(track_id: string, content_ids: string[]): AxiosPromise>; static listQuizzes(params?: object): AxiosPromise>; static viewQuiz(uuid: string): AxiosPromise>; static submitQuiz(uuid: string, answers: object): AxiosPromise>; static myQuizAttempts(uuid: string): AxiosPromise>; static viewQuizAttempt(uuid: string): AxiosPromise>; static createQuiz(data: object): AxiosPromise>; static updateQuiz(uuid: string, data: object): AxiosPromise>; static deleteQuiz(uuid: string): AxiosPromise>; static listQuizQuestions(quiz_id: string): AxiosPromise>; static createQuizQuestion(quiz_id: string, data: object): AxiosPromise>; static reorderQuizQuestions(quiz_id: string, question_ids: string[]): AxiosPromise>; static listQuizOptions(question_id: string): AxiosPromise>; static createQuizOption(question_id: string, data: object): AxiosPromise>; static viewQuizQuestion(uuid: string): AxiosPromise>; static updateQuizQuestion(uuid: string, data: object): AxiosPromise>; static deleteQuizQuestion(uuid: string): AxiosPromise>; static viewQuizOption(uuid: string): AxiosPromise>; static updateQuizOption(uuid: string, data: object): AxiosPromise>; static deleteQuizOption(uuid: string): AxiosPromise>; static syncProgress(data: object): AxiosPromise>; static getMyProgressByContent(content_id: string): AxiosPromise>; static listRegistrations(params?: object): AxiosPromise>; static refreshUserTrack(uuid: string): AxiosPromise>; static logView(data: object): AxiosPromise>; static saveModuleData(data: object): AxiosPromise>; static getModuleData(uuid: string): AxiosPromise>; static getConversionReport(): AxiosPromise>; static getAdoptionReport(): AxiosPromise>; static getQuestionPerformanceReport(params?: object): AxiosPromise>; static getRetentionReport(): AxiosPromise>; /** * List raw engagement logs. * @param params Filter by user_id, content_id, or is_paid */ static listViews(params?: object): AxiosPromise>; static myBadges(): AxiosPromise>; static awardBadge(data: object): AxiosPromise>; static myCertificates(): AxiosPromise>; static downloadCertificate(uuid: string): AxiosPromise>; static listTemplates(params?: object): AxiosPromise>; static createTemplate(data: object): AxiosPromise>; static viewTemplate(uuid: string, params?: object): AxiosPromise>; static updateTemplate(uuid: string, data: object): AxiosPromise>; static deleteTemplate(uuid: string): AxiosPromise>; static uploadTemplateSignature(uuid: string, file: File): AxiosPromise>; static uploadTemplateBackground(uuid: string, file: File): AxiosPromise>; } declare class Crm { /** * List and search CRM leads. */ static listLeads(params?: Record): AxiosPromise>; /** * Manually create a new lead. */ static createLead(data: object): AxiosPromise>; /** * View a single lead with contacts and activity timeline. */ static viewLead(lead_id: string): AxiosPromise>; /** * Update lead information. */ static updateLead(lead_id: string, data: object): AxiosPromise>; /** * Delete a lead (Soft Delete). */ static deleteLead(lead_id: string): AxiosPromise>; /** * Assign a Super Admin as the owner of a lead. */ static assignOwner(lead_id: string, user_id: string): AxiosPromise>; /** * Manually trigger Apollo enrichment and website scraping for a lead. */ static enrichLead(lead_id: string): AxiosPromise>; /** * Approve a specific contact to start the Apollo email sequence. */ static approveContact(contact_id: string): AxiosPromise>; /** * Manually update the pipeline status of a lead. */ static updateStatus(lead_id: string, status: string, note?: string): AxiosPromise>; /** * Add a manual note to the lead's activity timeline. */ static addNote(lead_id: string, content: string): AxiosPromise>; /** * Manually add a contact person to a lead. */ static addContact(lead_id: string, data: object): AxiosPromise>; /** * Mark a lead as lost and record the reason. */ static markAsLost(lead_id: string, reason: string): AxiosPromise>; /** * Record that a staff member has manually replied to a prospect. */ static recordStaffReply(lead_id: string): AxiosPromise>; /** * Approve a batch of contacts for outreach. */ static bulkApprove(contact_ids: string[]): AxiosPromise>; /** * Manually trigger the bi-weekly sourcing automation. */ static triggerSourcing(): AxiosPromise>; /** * Manually trigger the Apollo status and conversion sync. */ static triggerSync(): AxiosPromise>; /** * Get funnel conversion percentages. */ static getFunnelStats(): AxiosPromise>; /** * Get win rates and response time analytics. */ static getPerformanceStats(): AxiosPromise>; /** * Get the analytics on what users indcated they were interested in. */ static getInterestStats(): AxiosPromise>; /** * Update an existing contact's information. */ static updateContact(contact_id: string, data: object): AxiosPromise>; /** * Remove a contact from a lead. */ static deleteContact(contact_id: string): AxiosPromise>; /** * List CRM newsletter and mass-email campaigns. */ static listCampaigns(params?: Record): AxiosPromise>; /** * Create a CRM campaign draft with filters, exclusions, and optional variants. */ static createCampaign(data: object): AxiosPromise>; /** * View a CRM campaign. Pass include_recipients in params for a small recipient sample. */ static viewCampaign(campaign_id: string, params?: Record): AxiosPromise>; /** * Update an editable CRM campaign draft or paused campaign. */ static updateCampaign(campaign_id: string, data: object): AxiosPromise>; /** * Delete an unsent CRM campaign draft. */ static deleteCampaign(campaign_id: string): AxiosPromise>; /** * Preview campaign audience filters and exclusions without creating recipients. */ static previewCampaignAudience(data: object): AxiosPromise>; /** * List human-readable filter options for the CRM campaign composer. */ static getCampaignFilterOptions(): AxiosPromise>; /** * List the backend-supported CRM campaign merge fields for the composer. */ static getCampaignMergeFields(): AxiosPromise>; /** * Render CRM campaign content with the same merge-field engine used at send time. */ static renderCampaignTemplatePreview(data: object): AxiosPromise>; /** * Send a non-tracked CRM campaign test email with rendered merge fields. */ static sendCampaignTestEmail(data: object): AxiosPromise>; /** * Read CRM campaign queue depth and Azure/system email rate-limit windows. */ static getCampaignDeliveryStatus(): AxiosPromise>; /** * Materialize and queue a CRM campaign, optionally with a limit or dispatch=false. */ static sendCampaign(campaign_id: string, data?: object): AxiosPromise>; /** * Refresh and read CRM campaign engagement, reply, and conversion stats. */ static getCampaignStats(campaign_id: string): AxiosPromise>; /** * List campaign recipient audit rows with optional status or variant filters. */ static listCampaignRecipients(campaign_id: string, params?: Record): AxiosPromise>; /** * Validate external prospect rows and preview field mapping/dedupe outcomes. */ static previewCampaignProspectImport(prospects: object[], options?: Record): AxiosPromise>; /** * Import external prospects into CRM leads and contacts for future campaigns. */ static importCampaignProspects(prospects: object[], options?: Record): AxiosPromise>; /** * Preview uploaded festival submission sheets without writing External Game or CRM records. */ static previewFestivalSubmissionImport(files: Array, options?: Record, onUploadProgress?: (progressEvent: AxiosProgressEvent) => void): AxiosPromise>; /** * Import uploaded festival submission sheets into External Games and CRM leads/contacts. */ static importFestivalSubmissions(files: Array, options?: Record, onUploadProgress?: (progressEvent: AxiosProgressEvent) => void): AxiosPromise>; /** * List saved recurring Google Sheet sources for festival submission imports. */ static listFestivalSubmissionSources(): AxiosPromise>; /** * Save a recurring Google Sheet source for festival submission imports. */ static createFestivalSubmissionSource(data: object): AxiosPromise>; /** * Update a recurring Google Sheet source for festival submission imports. */ static updateFestivalSubmissionSource(source_id: string, data: object): AxiosPromise>; /** * Delete a recurring Google Sheet source for festival submission imports. */ static deleteFestivalSubmissionSource(source_id: string): AxiosPromise>; /** * List provider-managed sender and reply-to addresses for CRM campaigns. */ static listEmailProviderAddresses(params?: Record): AxiosPromise>; /** * List sender/reply-to dropdown options and defaults for the campaign composer. */ static getEmailProviderAddressOptions(): AxiosPromise>; /** * Add a provider-managed sender or reply-to address. */ static createEmailProviderAddress(data: object): AxiosPromise>; /** * Update provider verification, sendability, capabilities, defaults, or notes. */ static updateEmailProviderAddress(address_id: string, data: object): AxiosPromise>; /** * Deactivate a provider address while keeping the audit record. */ static deactivateEmailProviderAddress(address_id: string): AxiosPromise>; private static festivalSubmissionFormData; } type MultiplayerLobbyType = 'public' | 'invisible' | 'friends_only' | 'private'; type MultiplayerLobbyState = 'waiting' | 'ready' | 'in_game' | 'closed'; type MultiplayerLobbyMemberStatus = 'joined' | 'left' | 'disconnected' | 'kicked' | 'banned'; type MultiplayerLobbyMessageType = 'chat' | 'binary' | 'system' | 'ready' | 'invite' | 'kick' | 'voice'; type MultiplayerServerType = 'dedicated' | 'listen' | 'relay'; type MultiplayerServerStatus = 'active' | 'available' | 'draining' | 'offline'; type MultiplayerTransport = 'udp' | 'tcp' | 'webrtc' | 'relay'; type MultiplayerSessionState = 'reserved' | 'active' | 'released' | 'expired'; type MultiplayerAuthTicketStatus = 'active' | 'consumed' | 'revoked' | 'expired'; type MultiplayerFavoriteKind = 'favorite' | 'history'; type MultiplayerVoiceProvider = 'glitch_relay' | 'external'; type MultiplayerVoiceTopology = 'lobby' | 'server' | 'party' | 'proximity'; type MultiplayerVoiceState = 'active' | 'closed'; type MultiplayerVoiceCodec = 'opus' | 'pcm16' | 'aac'; type MultiplayerVoiceParticipantStatus = 'joined' | 'left' | 'muted' | 'kicked'; type MultiplayerVoicePacketType = 'audio' | 'speaking' | 'mute_state' | 'offer' | 'answer' | 'ice' | 'control'; type MultiplayerMetadata = Record; interface MultiplayerLobbyMember { id: string; lobby_id: string; player_id: string; user_id?: string | null; display_name?: string | null; status: MultiplayerLobbyMemberStatus; ready: boolean; member_data: MultiplayerMetadata; joined_at?: string | null; last_seen_at?: string | null; left_at?: string | null; } interface MultiplayerServer { id: string; title_id: string; name: string; server_type: MultiplayerServerType; status: MultiplayerServerStatus; region?: string | null; build_version?: string | null; host?: string | null; game_port?: number | null; query_port?: number | null; transport: MultiplayerTransport; connection_uri?: string | null; max_players: number; current_players: number; bot_players: number; secure: boolean; password_protected: boolean; private: boolean; tags: string[]; rules: MultiplayerMetadata; metadata: MultiplayerMetadata; last_heartbeat_at?: string | null; expires_at?: string | null; created_at?: string | null; updated_at?: string | null; } interface MultiplayerLobby { id: string; title_id: string; server_id?: string | null; owner_player_id: string; owner_user_id?: string | null; lobby_type: MultiplayerLobbyType; state: MultiplayerLobbyState; joinable: boolean; max_members: number; member_count: number; region?: string | null; game_mode?: string | null; map_name?: string | null; skill_band?: number | null; metadata: MultiplayerMetadata; last_activity_at?: string | null; expires_at?: string | null; created_at?: string | null; updated_at?: string | null; members?: MultiplayerLobbyMember[]; server?: MultiplayerServer | null; } interface MultiplayerLobbyMessage { id: string; lobby_id: string; player_id: string; user_id?: string | null; message_type: MultiplayerLobbyMessageType; payload: MultiplayerMetadata; sequence: number; created_at?: string | null; updated_at?: string | null; } interface MultiplayerSession { id: string; title_id: string; server_id?: string | null; lobby_id?: string | null; player_id: string; user_id?: string | null; state: MultiplayerSessionState; connection_payload: MultiplayerMetadata; last_heartbeat_at?: string | null; expires_at?: string | null; started_at?: string | null; ended_at?: string | null; created_at?: string | null; updated_at?: string | null; } interface MultiplayerAuthTicket { id: string; title_id: string; player_id: string; user_id?: string | null; remote_identity?: string | null; status: MultiplayerAuthTicketStatus; issued_at?: string | null; expires_at?: string | null; consumed_at?: string | null; created_at?: string | null; updated_at?: string | null; } interface MultiplayerServerFavorite { id: string; title_id: string; server_id?: string | null; user_id?: string | null; player_id: string; kind: MultiplayerFavoriteKind; name?: string | null; host?: string | null; game_port?: number | null; query_port?: number | null; metadata: MultiplayerMetadata; last_played_at?: string | null; created_at?: string | null; updated_at?: string | null; } interface MultiplayerVoiceParticipant { id: string; voice_room_id: string; player_id: string; user_id?: string | null; display_name?: string | null; status: MultiplayerVoiceParticipantStatus; muted: boolean; deafened: boolean; speaking: boolean; last_sequence: number; metadata: MultiplayerMetadata; joined_at?: string | null; last_heartbeat_at?: string | null; left_at?: string | null; expires_at?: string | null; created_at?: string | null; updated_at?: string | null; } interface MultiplayerVoiceRoom { id: string; title_id: string; lobby_id?: string | null; server_id?: string | null; owner_player_id: string; owner_user_id?: string | null; provider: MultiplayerVoiceProvider; topology: MultiplayerVoiceTopology; state: MultiplayerVoiceState; region?: string | null; codec: MultiplayerVoiceCodec; sample_rate: number; bitrate: number; frame_duration_ms: 10 | 20 | 40 | 60; channels: 1 | 2; max_participants: number; participant_count: number; recording_allowed: boolean; moderation_enabled: boolean; connection_config: MultiplayerMetadata; metadata: MultiplayerMetadata; last_activity_at?: string | null; expires_at?: string | null; created_at?: string | null; updated_at?: string | null; participants?: MultiplayerVoiceParticipant[]; } interface MultiplayerVoicePacket { id: string; voice_room_id: string; participant_id?: string | null; player_id: string; packet_type: MultiplayerVoicePacketType; payload: string; sequence: number; duration_ms?: number | null; sent_at?: string | null; created_at?: string | null; updated_at?: string | null; } interface MultiplayerLobbySearchParams { region?: string; game_mode?: string; map_name?: string; lobby_type?: MultiplayerLobbyType; skill_band?: number; limit?: number; } interface MultiplayerCreateLobbyRequest { player_id?: string; display_name?: string; member_data?: MultiplayerMetadata; lobby_type?: MultiplayerLobbyType; state?: MultiplayerLobbyState; joinable?: boolean; max_members?: number; region?: string; game_mode?: string; map_name?: string; skill_band?: number; metadata?: MultiplayerMetadata; expires_at?: string; } interface MultiplayerJoinLobbyRequest { player_id?: string; display_name?: string; ready?: boolean; member_data?: MultiplayerMetadata; } interface MultiplayerLeaveLobbyRequest { player_id?: string; } interface MultiplayerUpdateLobbyRequest { player_id?: string; lobby_type?: MultiplayerLobbyType; state?: MultiplayerLobbyState; joinable?: boolean; max_members?: number; region?: string; game_mode?: string; map_name?: string; skill_band?: number; metadata?: MultiplayerMetadata; expires_at?: string; } interface MultiplayerSetLobbyServerRequest { player_id?: string; server_id: string; state?: MultiplayerLobbyState; joinable?: boolean; } interface MultiplayerLobbyMessagesParams { after_sequence?: number; limit?: number; } interface MultiplayerSendLobbyMessageRequest { player_id?: string; message_type?: MultiplayerLobbyMessageType; payload: MultiplayerMetadata; } interface MultiplayerServerBrowserParams { region?: string; build_version?: string; transport?: MultiplayerTransport; status?: MultiplayerServerStatus; secure?: boolean; include_private?: boolean; limit?: number; } interface MultiplayerRegisterServerRequest { name: string; server_type?: MultiplayerServerType; status?: MultiplayerServerStatus; region?: string; build_version?: string; host?: string; game_port?: number; query_port?: number; transport?: MultiplayerTransport; connection_uri?: string; max_players?: number; current_players?: number; bot_players?: number; secure?: boolean; password_protected?: boolean; private?: boolean; tags?: string[]; rules?: MultiplayerMetadata; metadata?: MultiplayerMetadata; expires_at?: string; } interface MultiplayerRegisterServerResponse { server: MultiplayerServer; server_token: string; } interface MultiplayerServerHeartbeatRequest { server_token: string; status?: MultiplayerServerStatus; current_players?: number; bot_players?: number; rules?: MultiplayerMetadata; metadata?: MultiplayerMetadata; } interface MultiplayerReserveServerRequest { player_id?: string; lobby_id?: string; ttl_minutes?: number; } interface MultiplayerReserveServerResponse { session: MultiplayerSession; reservation_token: string; } interface MultiplayerSessionHeartbeatRequest { reservation_token: string; state?: Extract; ttl_minutes?: number; } interface MultiplayerSessionReleaseRequest { reservation_token: string; } interface MultiplayerIssueAuthTicketRequest { player_id?: string; remote_identity?: string; ttl_minutes?: number; } interface MultiplayerIssueAuthTicketResponse { ticket: MultiplayerAuthTicket; auth_ticket: string; } interface MultiplayerValidateAuthTicketRequest { auth_ticket: string; remote_identity?: string; consume?: boolean; } interface MultiplayerValidateAuthTicketForServerRequest extends MultiplayerValidateAuthTicketRequest { server_token: string; } interface MultiplayerValidateAuthTicketResponse { valid: boolean; ticket: MultiplayerAuthTicket; } interface MultiplayerFavoritesParams { player_id?: string; kind?: MultiplayerFavoriteKind; } interface MultiplayerFavoriteRequest { player_id?: string; server_id?: string; kind?: MultiplayerFavoriteKind; name?: string; host?: string; game_port?: number; query_port?: number; metadata?: MultiplayerMetadata; last_played_at?: string; } interface MultiplayerDeleteFavoriteParams { player_id?: string; } interface MultiplayerDeleteFavoriteResponse { deleted: boolean; } interface MultiplayerVoiceRoomListParams { lobby_id?: string; server_id?: string; provider?: MultiplayerVoiceProvider; topology?: MultiplayerVoiceTopology; state?: MultiplayerVoiceState; region?: string; limit?: number; } interface MultiplayerCreateVoiceRoomRequest { player_id?: string; display_name?: string; lobby_id?: string; server_id?: string; provider?: MultiplayerVoiceProvider; topology?: MultiplayerVoiceTopology; state?: MultiplayerVoiceState; region?: string; codec?: MultiplayerVoiceCodec; sample_rate?: number; bitrate?: number; frame_duration_ms?: 10 | 20 | 40 | 60; channels?: 1 | 2; max_participants?: number; recording_allowed?: boolean; moderation_enabled?: boolean; connection_config?: MultiplayerMetadata; metadata?: MultiplayerMetadata; ttl_minutes?: number; expires_at?: string; } interface MultiplayerUpdateVoiceRoomRequest { player_id?: string; state?: MultiplayerVoiceState; max_participants?: number; recording_allowed?: boolean; moderation_enabled?: boolean; connection_config?: MultiplayerMetadata; metadata?: MultiplayerMetadata; expires_at?: string; } interface MultiplayerJoinVoiceRoomRequest { player_id?: string; display_name?: string; metadata?: MultiplayerMetadata; ttl_minutes?: number; } interface MultiplayerVoiceRoomTokenResponse { voice_room: MultiplayerVoiceRoom; participant: MultiplayerVoiceParticipant; voice_token: string; } interface MultiplayerVoiceHeartbeatRequest { voice_token: string; muted?: boolean; deafened?: boolean; speaking?: boolean; last_sequence?: number; ttl_minutes?: number; } interface MultiplayerVoiceLeaveRequest { voice_token: string; } interface MultiplayerVoicePacketRequest { voice_token: string; packet_type?: MultiplayerVoicePacketType; payload: string; duration_ms?: number; } interface MultiplayerVoicePollRequest { voice_token: string; after_sequence?: number; limit?: number; exclude_self?: boolean; } type MultiplayerRealmStatus = 'active' | 'locked' | 'maintenance' | 'full' | 'offline'; type MultiplayerZoneType = 'overworld' | 'city' | 'dungeon' | 'raid' | 'arena' | 'instanced'; type MultiplayerInstanceKind = 'persistent' | 'dynamic' | 'dungeon' | 'raid' | 'arena'; type MultiplayerInstanceState = 'provisioning' | 'active' | 'draining' | 'closed'; type MultiplayerPresenceStatus = 'online' | 'in_queue' | 'in_world' | 'away' | 'offline'; type MultiplayerMatchmakingStatus = 'queued' | 'matched' | 'canceled' | 'expired' | 'timed_out'; type MultiplayerBanScope = 'title' | 'realm' | 'lobby' | 'server' | 'voice'; type MultiplayerBanSource = 'manual' | 'report' | 'anticheat' | 'automated'; type MultiplayerRealtimeScopeType = 'lobby' | 'voice' | 'zone' | 'instance'; /** A persistent world copy (shard). */ interface MultiplayerRealm { id: string; title_id: string; name: string; slug?: string | null; region?: string | null; status: MultiplayerRealmStatus; population_cap: number; current_population: number; recommended: boolean; ruleset: MultiplayerMetadata; metadata: MultiplayerMetadata; last_activity_at?: string | null; created_at?: string | null; updated_at?: string | null; } /** A named area within a realm (map/continent/dungeon template). */ interface MultiplayerZone { id: string; title_id: string; realm_id: string; zone_key: string; display_name: string; zone_type: MultiplayerZoneType; is_instanced: boolean; max_players_per_instance: number; min_instances: number; grid_cell_size: number; coordinates_bounds: MultiplayerMetadata; metadata: MultiplayerMetadata; created_at?: string | null; updated_at?: string | null; } /** A runtime copy of a zone, optionally bound to a game server. */ interface MultiplayerInstance { id: string; title_id: string; realm_id: string; zone_id: string; server_id?: string | null; instance_kind: MultiplayerInstanceKind; state: MultiplayerInstanceState; layer: number; difficulty?: string | null; max_players: number; current_players: number; metadata: MultiplayerMetadata; last_heartbeat_at?: string | null; expires_at?: string | null; created_at?: string | null; updated_at?: string | null; server?: MultiplayerServer | null; } /** Authoritative location of a player. */ interface MultiplayerPresence { id: string; title_id: string; player_id: string; user_id?: string | null; realm_id?: string | null; zone_id?: string | null; instance_id?: string | null; party_id?: string | null; display_name?: string | null; status: MultiplayerPresenceStatus; rich_status?: string | null; pos_x?: number | null; pos_y?: number | null; pos_z?: number | null; heading?: number | null; grid_cell?: string | null; metadata: MultiplayerMetadata; last_heartbeat_at?: string | null; expires_at?: string | null; } interface MultiplayerMatchmakingTicket { id: string; title_id: string; queue: string; player_id: string; user_id?: string | null; party: string[]; attributes: MultiplayerMetadata; skill?: number | null; region?: string | null; status: MultiplayerMatchmakingStatus; match_id?: string | null; assignment?: MultiplayerMetadata | null; queued_at?: string | null; matched_at?: string | null; expires_at?: string | null; } interface MultiplayerBan { id: string; title_id: string; scope: MultiplayerBanScope; scope_id?: string | null; player_id: string; user_id?: string | null; issued_by?: string | null; source: MultiplayerBanSource; reason?: string | null; metadata: MultiplayerMetadata; expires_at?: string | null; } interface MultiplayerRealmListParams { region?: string; status?: MultiplayerRealmStatus; recommended?: boolean; limit?: number; } interface MultiplayerCreateRealmRequest { name: string; slug?: string; region?: string; status?: MultiplayerRealmStatus; population_cap?: number; recommended?: boolean; ruleset?: MultiplayerMetadata; metadata?: MultiplayerMetadata; } interface MultiplayerUpdateRealmRequest extends Partial { } interface MultiplayerZoneListParams { zone_type?: MultiplayerZoneType; limit?: number; } interface MultiplayerCreateZoneRequest { zone_key: string; display_name: string; zone_type?: MultiplayerZoneType; is_instanced?: boolean; max_players_per_instance?: number; min_instances?: number; grid_cell_size?: number; coordinates_bounds?: MultiplayerMetadata; metadata?: MultiplayerMetadata; } interface MultiplayerInstanceListParams { state?: MultiplayerInstanceState; limit?: number; } interface MultiplayerEnterZoneRequest { player_id?: string; realm_id: string; zone_id: string; server_id?: string; party_id?: string; instance_kind?: MultiplayerInstanceKind; difficulty?: string; display_name?: string; rich_status?: string; pos_x?: number; pos_y?: number; pos_z?: number; heading?: number; metadata?: MultiplayerMetadata; instance_metadata?: MultiplayerMetadata; ttl_minutes?: number; } interface MultiplayerEnterZoneResponse { instance: MultiplayerInstance; presence: MultiplayerPresence; } interface MultiplayerUpdatePresenceRequest { player_id?: string; status?: MultiplayerPresenceStatus; rich_status?: string; pos_x?: number; pos_y?: number; pos_z?: number; heading?: number; ttl_minutes?: number; } interface MultiplayerLeaveWorldRequest { player_id?: string; } interface MultiplayerInstancePresenceParams { grid_cell?: string; radius?: number; limit?: number; } interface MultiplayerEnqueueTicketRequest { player_id?: string; queue: string; party?: string[]; attributes?: MultiplayerMetadata; skill?: number; region?: string; ttl_seconds?: number; } interface MultiplayerBanListParams { scope?: MultiplayerBanScope; player_id?: string; source?: MultiplayerBanSource; active_only?: boolean; limit?: number; } interface MultiplayerCreateBanRequest { player_id: string; scope?: MultiplayerBanScope; scope_id?: string; user_id?: string; source?: MultiplayerBanSource; reason?: string; metadata?: MultiplayerMetadata; expires_at?: string; } interface MultiplayerDeleteBanResponse { deleted: boolean; } interface MultiplayerRealtimeScope { type: MultiplayerRealtimeScopeType; id: string; } interface MultiplayerRealtimeNegotiateRequest { player_id?: string; scopes?: MultiplayerRealtimeScope[]; } interface MultiplayerRealtimeNegotiateResponse { protocol: string; url: string | null; configured: boolean; groups: string[]; access_token: string | null; expires_at: string | null; } /** * Steam-style multiplayer APIs for Glitch titles. * * The multiplayer surface is split into three groups: * lobby coordination, voice coordination, server browser/reservations, and short-lived auth tickets. * User JWTs can infer the player from the authenticated user. Title-token clients * and game clients without a Glitch user session should pass a stable `player_id`. * Dedicated servers use `server_token` on heartbeat and server-side ticket validation * so they do not need to hold a user JWT or title token. * * These endpoints are intentionally database-agnostic from the SDK's point of view: * callers work with public identifiers, metadata objects, and lifecycle events, * while the backend owns how those records are stored. */ declare class Multiplayer { /** * Search joinable, non-expired lobbies for a title. * * Filters are exact-match except `skill_band`, which the backend can use for * near sorting. Default results exclude full, closed, unjoinable, and expired * lobbies. Lifecycle context: clients usually call this before `joinLobby`; * joins create a `lobby.joined` event on the backend. * * @param title_id Title UUID. * @param params Optional filters such as region, game mode, map, lobby type, skill band, and limit. * @example * Multiplayer.searchLobbies('title-uuid', { * region: 'us-central', * game_mode: 'ranked_duos', * skill_band: 1840, * limit: 25 * }); */ static searchLobbies(title_id: string, params?: MultiplayerLobbySearchParams): AxiosPromise>; /** * Create a lobby and insert the owner as the first joined member. * * Use this when matchmaking has no suitable lobby, when a player invites * friends, or when a party needs pre-game setup before server assignment. * Lifecycle events: `lobby.created`, then `lobby.joined` for the owner. * * @param title_id Title UUID. * @param data Lobby configuration and optional owner/member metadata. * @example * Multiplayer.createLobby('title-uuid', { * player_id: 'steam:76561198000000000', * display_name: 'CinderAce', * lobby_type: 'public', * max_members: 4, * region: 'us-central', * game_mode: 'ranked_duos', * metadata: { playlist: 'ranked', allow_voice: true } * }); */ static createLobby(title_id: string, data: MultiplayerCreateLobbyRequest): AxiosPromise>; /** * Retrieve a lobby with members and assigned server information when present. * * Call this after lobby lifecycle notifications such as `lobby.joined`, * `lobby.updated`, `lobby.owner_transferred`, or `lobby.server_assigned`. * * @param title_id Title UUID. * @param lobby_id Lobby UUID. */ static showLobby(title_id: string, lobby_id: string): AxiosPromise>; /** * Join a lobby or refresh an existing membership. * * This call is idempotent for a player already in the lobby and can update * display name, ready state, or member metadata. It returns 409 when the lobby * is full, closed, expired, or not joinable. Lifecycle event: `lobby.joined`. * * @param title_id Title UUID. * @param lobby_id Lobby UUID. * @param data Player identity and optional member metadata. * @example * Multiplayer.joinLobby('title-uuid', 'lobby-uuid', { * player_id: 'steam:76561198000000001', * display_name: 'Nova', * ready: false, * member_data: { character: 'Ash', rank: 1799 } * }); */ static joinLobby(title_id: string, lobby_id: string, data: MultiplayerJoinLobbyRequest): AxiosPromise>; /** * Leave a lobby. * * If the owner leaves, ownership transfers to the oldest remaining joined * member. If no members remain, the lobby closes. Lifecycle events: * `lobby.left`, optionally `lobby.owner_transferred` or `lobby.updated`. * * @param title_id Title UUID. * @param lobby_id Lobby UUID. * @param data Optional player_id for title-token clients. */ static leaveLobby(title_id: string, lobby_id: string, data?: MultiplayerLeaveLobbyRequest): AxiosPromise>; /** * Update lobby metadata, visibility, joinability, limits, or state. * * This is owner-only. `max_members` cannot be lower than the current member * count. Keep metadata low-frequency and mostly search/display oriented. * Lifecycle event: `lobby.updated`. * * @param title_id Title UUID. * @param lobby_id Lobby UUID. * @param data Owner identity plus fields to update. */ static updateLobby(title_id: string, lobby_id: string, data: MultiplayerUpdateLobbyRequest): AxiosPromise>; /** * Assign a registered game server to a lobby. * * This owner-only handoff mirrors Steam's SetLobbyGameServer flow. Clients * should react by reserving or connecting to the assigned server, then * optionally leaving the lobby. Lifecycle event: `lobby.server_assigned`. * * @param title_id Title UUID. * @param lobby_id Lobby UUID. * @param data Server UUID and optional lobby state/joinability updates. */ static setLobbyServer(title_id: string, lobby_id: string, data: MultiplayerSetLobbyServerRequest): AxiosPromise>; /** * List ordered low-bandwidth lobby messages. * * Use `after_sequence` to poll for messages missed during reconnects or after * a realtime `lobby.message_sent` event. This channel is for chat and control * messages, not gameplay, positional data, or voice streaming. * * @param title_id Title UUID. * @param lobby_id Lobby UUID. * @param params Optional sequence cursor and limit. */ static listLobbyMessages(title_id: string, lobby_id: string, params?: MultiplayerLobbyMessagesParams): AxiosPromise>; /** * Send a low-bandwidth message to all lobby members. * * Payloads are capped at 4KB by the backend. Use this for chat, ready signals, * invite/kick control messages, and owner-arbitrated choices. Lifecycle event: * `lobby.message_sent`. * * @param title_id Title UUID. * @param lobby_id Lobby UUID. * @param data Message type, sender identity, and JSON payload. * @example * Multiplayer.sendLobbyMessage('title-uuid', 'lobby-uuid', { * player_id: 'steam:76561198000000000', * message_type: 'ready', * payload: { ready: true } * }); */ static sendLobbyMessage(title_id: string, lobby_id: string, data: MultiplayerSendLobbyMessageRequest): AxiosPromise>; /** * List active/non-expired voice rooms for a title. * * Rooms can be attached to a lobby, a server, a party, or a proximity group. * Use this to discover existing voice state before joining. Lifecycle context: * realtime transports should mirror `voice.room_created`, `voice.room_updated`, * `voice.joined`, and `voice.left`. * * @param title_id Title UUID. * @param params Optional room filters such as lobby_id, server_id, provider, topology, state, region, and limit. */ static listVoiceRooms(title_id: string, params?: MultiplayerVoiceRoomListParams): AxiosPromise>; /** * Create a voice room and join the creator as the first participant. * * The backend returns `voice_token` once. Keep it client-side and use it for * voice heartbeat, packet send, packet polling, and leave calls. `glitch_relay` * can carry base64 Opus frames for prototypes, small-party fallback, or * signaling. For production-scale audio, set `provider: 'external'` and reuse * the room/token contract with WebRTC, an SFU, Vivox, Steam Networking, or an * engine-native transport. Lifecycle events: `voice.room_created`, * `voice.joined`. * * @param title_id Title UUID. * @param data Voice codec, topology, linked lobby/server, and owner metadata. * @example * const { data } = await Multiplayer.createVoiceRoom('title-uuid', { * player_id: 'steam:76561198000000000', * display_name: 'CinderAce', * lobby_id: 'lobby-uuid', * provider: 'glitch_relay', * topology: 'lobby', * codec: 'opus', * sample_rate: 48000, * frame_duration_ms: 20, * channels: 1, * metadata: { push_to_talk: true } * }); */ static createVoiceRoom(title_id: string, data: MultiplayerCreateVoiceRoomRequest): AxiosPromise>; /** * Retrieve a voice room with participant media states. * * Use this after `voice.joined`, `voice.heartbeat`, `voice.left`, or * `voice.room_updated` to refresh in-game UI such as speaker lists, mute * icons, or team voice controls. * * @param title_id Title UUID. * @param voice_room_id Voice room UUID. */ static showVoiceRoom(title_id: string, voice_room_id: string): AxiosPromise>; /** * Update owner-controlled voice room state. * * Owner-only. Use this to close a room, adjust capacity, update moderation * flags, or provide external provider connection details. The backend rejects * lowering `max_participants` below the current participant count. Lifecycle * event: `voice.room_updated`. * * @param title_id Title UUID. * @param voice_room_id Voice room UUID. * @param data Owner player identity and room fields to update. */ static updateVoiceRoom(title_id: string, voice_room_id: string, data: MultiplayerUpdateVoiceRoomRequest): AxiosPromise>; /** * Join a voice room and receive a participant-scoped token. * * Rejoining with the same player is idempotent and rotates the token. The * token is used by participant endpoints instead of requiring a user JWT or * title token on every media request. Returns 409 when the room is closed, * expired, or full. Lifecycle event: `voice.joined`. * * @param title_id Title UUID. * @param voice_room_id Voice room UUID. * @param data Player identity, display name, metadata, and token TTL. */ static joinVoiceRoom(title_id: string, voice_room_id: string, data: MultiplayerJoinVoiceRoomRequest): AxiosPromise>; /** * Heartbeat voice participant state. * * Call every 10-30 seconds and whenever mute/deafen/speaking state changes. * `last_sequence` tells the backend how far this participant has processed * ordered packets. Expired participants are rejected with 409. Lifecycle event: * `voice.heartbeat`. * * @param data Participant voice token and mutable media state. */ static heartbeatVoice(data: MultiplayerVoiceHeartbeatRequest): AxiosPromise>; /** * Leave the current voice room for a participant token. * * This is idempotent for disconnect cleanup: room participant count is * decremented once, room ownership is transferred when possible, and an * empty room closes. The token remains valid only for retrying this leave * call; heartbeat, send, and poll calls reject left participants. Lifecycle * event: `voice.left`. * * @param data Participant voice token. */ static leaveVoice(data: MultiplayerVoiceLeaveRequest): AxiosPromise>; /** * Send one ordered voice-room packet. * * `audio` packets should contain compact compressed frames such as base64 Opus * at 48kHz mono/20ms. `offer`, `answer`, and `ice` packets support WebRTC * signaling. `control`, `speaking`, and `mute_state` packets are for custom * engine state. Audio payloads are capped at 16KB; non-audio packets at 4KB. * Muted participants cannot send audio. Lifecycle event: `voice.packet_sent`. * * @param data Participant token, packet type, payload, and optional duration. * @example * await Multiplayer.sendVoicePacket({ * voice_token: voiceToken, * packet_type: 'audio', * payload: base64OpusFrame, * duration_ms: 20 * }); */ static sendVoicePacket(data: MultiplayerVoicePacketRequest): AxiosPromise>; /** * Poll ordered voice-room packets after a known sequence. * * Defaults to excluding packets sent by the caller. Use the highest returned * sequence as the next `after_sequence` cursor. This is useful for fallback * relay, WebRTC signaling, reconnect recovery, and small-party prototypes. * Lifecycle event: `voice.packet_polled`. * * @param data Participant token, optional sequence cursor, limit, and self-exclusion flag. */ static pollVoicePackets(data: MultiplayerVoicePollRequest): AxiosPromise>; /** * Browse public, joinable multiplayer servers for a title. * * Default results exclude private, draining, offline, stale, expired, and full * servers. Title administrators can pass `include_private` to inspect servers * that normal clients cannot join. * * @param title_id Title UUID. * @param params Optional server browser filters. */ static browseServers(title_id: string, params?: MultiplayerServerBrowserParams): AxiosPromise>; /** * Register or refresh a multiplayer server and receive a one-time server token. * * Store `server_token` only on the server process. The backend stores only a * hash and will not return the plain token again. Counts are validated so * `current_players + bot_players` cannot exceed `max_players`. Lifecycle event: * `server.registered`. * * @param title_id Title UUID. * @param data Server browser, connection, rule, and capacity metadata. * @example * Multiplayer.registerServer('title-uuid', { * name: 'Ranked US Central 01', * server_type: 'dedicated', * status: 'active', * host: '203.0.113.42', * game_port: 7777, * query_port: 27015, * transport: 'udp', * max_players: 16, * secure: true, * tags: ['ranked', 'duos'] * }); */ static registerServer(title_id: string, data: MultiplayerRegisterServerRequest): AxiosPromise>; /** * Heartbeat a multiplayer server with its dedicated `server_token`. * * Call every 30-60 seconds and whenever player counts, rules, or metadata * change. Stale servers are hidden from default browsing and reservation. * This endpoint is for dedicated/listen server processes and does not require * a user JWT. Lifecycle event: `server.heartbeat`. * * @param title_id Title UUID. * @param server_id Server UUID. * @param data Server token and optional mutable server state. */ static heartbeatServer(title_id: string, server_id: string, data: MultiplayerServerHeartbeatRequest): AxiosPromise>; /** * Reserve a short-lived slot on a multiplayer server before connecting. * * Reservations protect capacity during game handoff. The backend rejects stale, * private, full, draining, offline, expired, or duplicate open reservations. * The plain `reservation_token` is returned once and is used for session * heartbeat/release calls. Lifecycle event: `server.reserved`. * * @param title_id Title UUID. * @param server_id Server UUID. * @param data Optional player/lobby identity and reservation TTL. */ static reserveServer(title_id: string, server_id: string, data?: MultiplayerReserveServerRequest): AxiosPromise>; /** * Heartbeat an open multiplayer session reservation. * * Use this after a successful reservation while the client is connecting or * playing. Expired sessions are marked expired and capacity is recovered before * the backend returns 409. Lifecycle events: `session.heartbeat` or * `session.expired`. * * @param data Reservation token and optional state/TTL. */ static heartbeatSession(data: MultiplayerSessionHeartbeatRequest): AxiosPromise>; /** * Release an open multiplayer session reservation. * * Call this on normal disconnect, failed connection attempts, or shutdown so * server capacity is decremented promptly. The backend makes release safe to * call more than once for an already closed reservation. Lifecycle event: * `session.released`. * * @param data Reservation token returned by `reserveServer`. */ static releaseSession(data: MultiplayerSessionReleaseRequest): AxiosPromise>; /** * Issue a short-lived multiplayer auth ticket for a player. * * The plain `auth_ticket` is returned once and only a hash is stored by the * backend. Use this for P2P or dedicated-server admission before game traffic * begins. `remote_identity` can bind the ticket to a server or validator. * Lifecycle event: `auth_ticket.issued`. * * @param title_id Title UUID. * @param data Player identity, optional remote identity, and TTL. */ static issueAuthTicket(title_id: string, data?: MultiplayerIssueAuthTicketRequest): AxiosPromise>; /** * Validate a multiplayer auth ticket from a trusted title/user context. * * Pass `consume: true` for one-time tickets to prevent replay. Dedicated * servers should usually call `validateAuthTicketForServer` so they can use * `server_token` instead of a title token or user JWT. Lifecycle event: * `auth_ticket.validated`. * * @param title_id Title UUID. * @param data Ticket, optional remote identity check, and consume flag. */ static validateAuthTicket(title_id: string, data: MultiplayerValidateAuthTicketRequest): AxiosPromise>; /** * Validate an auth ticket as a dedicated server. * * This server-token endpoint lets a dedicated server admit players without * holding a user JWT or title token. Pass `consume: true` to prevent replay. * Lifecycle event: `auth_ticket.validated`. * * @param title_id Title UUID. * @param server_id Server UUID. * @param data Server token, player auth ticket, optional remote identity, and consume flag. */ static validateAuthTicketForServer(title_id: string, server_id: string, data: MultiplayerValidateAuthTicketForServerRequest): AxiosPromise>; /** * List a player's server favorites or history entries. * * Use this for Steam-like favorites and recent servers tabs. Title-token * clients should pass `player_id`; user JWT clients default to the user UUID. * * @param title_id Title UUID. * @param params Optional player and favorite/history filter. */ static listFavorites(title_id: string, params?: MultiplayerFavoritesParams): AxiosPromise>; /** * Add or update a favorite/history server entry for a player. * * Provide `server_id` for a registered Glitch server, or `host` plus * `game_port` for a direct/community server. Lifecycle event: * `favorite.upserted`. * * @param title_id Title UUID. * @param data Favorite/history target and optional metadata. */ static addFavorite(title_id: string, data: MultiplayerFavoriteRequest): AxiosPromise>; /** * Delete a player's favorite/history server entry. * * The SDK sends optional `player_id` as a query parameter because the shared * request helper treats DELETE payloads as query params. This maps cleanly to * the backend's optional player identity validation for title-token clients. * Lifecycle event: `favorite.deleted`. * * @param title_id Title UUID. * @param favorite_id Favorite/history UUID. * @param params Optional player_id for title-token clients. */ static deleteFavorite(title_id: string, favorite_id: string, params?: MultiplayerDeleteFavoriteParams): AxiosPromise>; /** * List realms (persistent world shards) so a player can choose where to log in. * * @param title_id Title UUID. * @param params Optional region/status filters; recommended realms sort first. * @example * Multiplayer.listRealms('title-uuid', { region: 'us-central', status: 'active' }); */ static listRealms(title_id: string, params?: MultiplayerRealmListParams): AxiosPromise>; /** * Create a realm. Requires a title administrator JWT. * * @param title_id Title UUID. * @param data Realm configuration. * @example * Multiplayer.createRealm('title-uuid', { name: 'Aurora', region: 'us-central', population_cap: 5000, recommended: true }); */ static createRealm(title_id: string, data: MultiplayerCreateRealmRequest): AxiosPromise>; /** * Retrieve a single realm. * * @param title_id Title UUID. * @param realm_id Realm UUID. */ static showRealm(title_id: string, realm_id: string): AxiosPromise>; /** * Update a realm (status, population cap, ruleset). Requires a title admin JWT. * * @param title_id Title UUID. * @param realm_id Realm UUID. * @param data Fields to update. */ static updateRealm(title_id: string, realm_id: string, data: MultiplayerUpdateRealmRequest): AxiosPromise>; /** * List the zones defined for a realm. * * @param title_id Title UUID. * @param realm_id Realm UUID. * @param params Optional zone_type filter. */ static listZones(title_id: string, realm_id: string, params?: MultiplayerZoneListParams): AxiosPromise>; /** * Create a zone in a realm. Requires a title administrator JWT. * * @param title_id Title UUID. * @param realm_id Realm UUID. * @param data Zone configuration, including interest-management grid cell size. * @example * Multiplayer.createZone('title-uuid', 'realm-uuid', { * zone_key: 'ashfall_valley', * display_name: 'Ashfall Valley', * zone_type: 'overworld', * max_players_per_instance: 100, * grid_cell_size: 64 * }); */ static createZone(title_id: string, realm_id: string, data: MultiplayerCreateZoneRequest): AxiosPromise>; /** * List the active/other instances (runtime copies) of a zone. * * @param title_id Title UUID. * @param zone_id Zone UUID. * @param params Optional state filter. */ static listInstances(title_id: string, zone_id: string, params?: MultiplayerInstanceListParams): AxiosPromise>; /** * Retrieve a single instance. * * @param title_id Title UUID. * @param instance_id Instance UUID. */ static showInstance(title_id: string, instance_id: string): AxiosPromise>; /** * List players present in an instance. Pass grid_cell (and optional radius) to * receive only players in the caller's area of interest — the key to keeping * per-player fan-out bounded regardless of how populated the zone is. * * @param title_id Title UUID. * @param instance_id Instance UUID. * @param params grid_cell "cx:cy" and radius (0-4) to scope the query. * @example * Multiplayer.listInstancePresence('title-uuid', 'instance-uuid', { grid_cell: '12:8', radius: 1 }); */ static listInstancePresence(title_id: string, instance_id: string, params?: MultiplayerInstancePresenceParams): AxiosPromise>; /** * Enter a zone. The backend places the player into an active instance with * capacity (creating a new layer if all are full), enforces bans and realm * capacity, and upserts presence. Returns the instance and presence so the * client can connect and subscribe to the instance's real-time group. * * @param title_id Title UUID. * @param data Realm/zone target plus optional spawn position and metadata. * @example * Multiplayer.enterZone('title-uuid', { * player_id: 'steam:765...', * realm_id: 'realm-uuid', * zone_id: 'zone-uuid', * pos_x: 128.0, pos_z: 64.0 * }); */ static enterZone(title_id: string, data: MultiplayerEnterZoneRequest): AxiosPromise>; /** * Update presence (position, heading, rich status) and refresh the TTL. Call * on a movement interval and on notable state changes. * * @param title_id Title UUID. * @param data New position/status for the player. */ static updatePresence(title_id: string, data: MultiplayerUpdatePresenceRequest): AxiosPromise>; /** * Leave the world. Frees the player's instance slot and realm population. * * @param title_id Title UUID. * @param data Optional player_id for title-token clients. */ static leaveWorld(title_id: string, data?: MultiplayerLeaveWorldRequest): AxiosPromise>; /** * Enqueue a matchmaking ticket. Idempotent per (queue, player): an existing * open ticket is returned rather than duplicated, so retries are safe. Poll * the ticket or subscribe to `matchmaking.matched` for the assignment. * * @param title_id Title UUID. * @param data Queue name plus optional party, skill, region, and attributes. * @example * Multiplayer.enqueueTicket('title-uuid', { player_id: 'steam:765...', queue: 'ranked_2v2', skill: 1840, region: 'us-central' }); */ static enqueueTicket(title_id: string, data: MultiplayerEnqueueTicketRequest): AxiosPromise>; /** * Poll a matchmaking ticket. A queued ticket past its TTL is reported as * `timed_out`; a matched ticket carries the connection `assignment`. * * @param title_id Title UUID. * @param ticket_id Ticket UUID. */ static showTicket(title_id: string, ticket_id: string): AxiosPromise>; /** * Cancel a queued matchmaking ticket. * * @param title_id Title UUID. * @param ticket_id Ticket UUID. */ static cancelTicket(title_id: string, ticket_id: string): AxiosPromise>; /** * Negotiate a real-time push connection. Returns the authorized group names * and the push endpoint. When SignalR/Web PubSub is configured, an * access_token scoped to those groups is included; otherwise `configured` is * false and the client should fall back to the polling endpoints. * * @param title_id Title UUID. * @param data Optional player_id and the scopes (lobby/voice/zone/instance) to subscribe to. * @example * Multiplayer.negotiateRealtime('title-uuid', { player_id: 'steam:765...', scopes: [{ type: 'instance', id: 'instance-uuid' }] }); */ static negotiateRealtime(title_id: string, data?: MultiplayerRealtimeNegotiateRequest): AxiosPromise>; /** * List bans for a title. Requires a title administrator JWT. * * @param title_id Title UUID. * @param params Optional scope/player/source filters and active_only. */ static listBans(title_id: string, params?: MultiplayerBanListParams): AxiosPromise>; /** * Ban a player at a scope (title/realm/lobby/server/voice). Requires a title * administrator JWT. Omit expires_at for a permanent ban. * * @param title_id Title UUID. * @param data Ban target and scope. * @example * Multiplayer.createBan('title-uuid', { player_id: 'steam:765...', scope: 'title', reason: 'Cheating: aimbot' }); */ static createBan(title_id: string, data: MultiplayerCreateBanRequest): AxiosPromise>; /** * Lift a ban. Requires a title administrator JWT. * * @param title_id Title UUID. * @param ban_id Ban UUID. */ static deleteBan(title_id: string, ban_id: string): AxiosPromise>; } declare class ServerOperations { static listDeployments(params?: Record): AxiosPromise>; /** * Update the warm/spare/ceiling shape of a matchmaker managed instance pool. * Rejected for any build whose capacity model is not "pooled". */ static updatePolicy(title_id: string, build_id: string, data: object): AxiosPromise>; /** * Resize the Container App behind a build. Replica bounds are enforced * server side against the build's capacity model, so a singleton world * cannot be given a second replica. Pass acknowledge_outage when * deliberately setting min replicas to 0 on a singleton or replicated * deployment, which takes the game offline. */ static updateContainerAppResources(title_id: string, build_id: string, data: object): AxiosPromise>; /** * Declare how many server processes a build may run at once: singleton, * replicated, pooled, serverless, or static. Re-clamps the stored replica * shape and is honored by the next deployment. */ static updateCapacityModel(title_id: string, build_id: string, data: { capacity_model: string; }): AxiosPromise>; /** * Realms are how a singleton world scales: one process per realm, all * sharing a database. These are the site-admin views of the multiplayer * realm records. */ static listRealms(title_id: string, params?: Record): AxiosPromise>; static createRealm(title_id: string, data: object): AxiosPromise>; static updateRealm(title_id: string, realm_id: string, data: object): AxiosPromise>; static deleteRealm(title_id: string, realm_id: string): AxiosPromise>; } interface AgentRunRequest { run_type?: string; trigger_source?: string; background?: boolean; inline?: boolean; live_mode?: boolean; initial_message?: string | null; attachment_ids?: string[]; agent_run_id?: string | null; [key: string]: any; } interface AgentStreamAnswerRequest { prompt: string; [key: string]: any; } interface AgentFetchOptions { params?: Record; signal?: AbortSignal; headers?: Record; fetcher?: typeof fetch; } interface AgentStreamAnswerOptions extends AgentFetchOptions { } declare class Agents { private static fetchWithAuth; /** * List game titles that can be managed in the Agents section. */ static listTitles(params?: Record): AxiosPromise>; /** * List title-agent subscriptions linked to titles in a community. */ static listCommunitySubscriptions(community_id: string, params?: Record): AxiosPromise>; /** * Cancel a title-agent subscription linked to a community title. */ static cancelCommunitySubscription(community_id: string, stripe_subscription_id: string, params?: Record): AxiosPromise>; /** * Return the full Laravel API route catalog agents use for route-aware planning. */ static routeCatalog(params?: Record): AxiosPromise>; /** * Get a title-scoped agent workspace with setup, billing, counts, and route summary. */ static workspace(title_id: string, params?: Record): AxiosPromise>; /** * List agents for a title. */ static listAgents(title_id: string, params?: Record): AxiosPromise>; /** * Create an agent before payment. Runs/results remain gated until subscription or prepaid credits. */ static createAgent(title_id: string, data?: object, params?: Record): AxiosPromise>; /** * View one agent. */ static viewAgent(title_id: string, agent_id: string, params?: Record): AxiosPromise>; /** * Update an agent's setup, policies, and guidance stop rules. */ static updateAgent(title_id: string, agent_id: string, data?: object, params?: Record): AxiosPromise>; /** * Archive an agent. */ static deleteAgent(title_id: string, agent_id: string, params?: Record): AxiosPromise>; /** * Run an agent planning cycle. Returns 402 when subscription or prepaid credits are required. */ static runAgent(title_id: string, agent_id: string, data?: AgentRunRequest, params?: Record): AxiosPromise>; /** * Stream a quick advisory answer for the agent workspace. * * This returns the native Fetch API Response so callers can consume the * ReadableStream body incrementally. A 409 response means streaming is * disabled server-side and the caller should fall back to the normal run * flow. */ static streamAnswer(title_id: string, agent_id: string, data: AgentStreamAnswerRequest | string, options?: AgentStreamAnswerOptions): Promise; /** * Upload one file for an agent run. data can include { agent_run_id }. */ static uploadAgentFile(title_id: string, agent_id: string, file: File | Blob, data?: object, params?: Record, onUploadProgress?: (progressEvent: AxiosProgressEvent) => void): AxiosPromise>; /** * Alias for callers that use plural naming while uploading one file at a time. */ static uploadAgentFiles(title_id: string, agent_id: string, file: File | Blob, data?: object, params?: Record, onUploadProgress?: (progressEvent: AxiosProgressEvent) => void): AxiosPromise>; /** * List Google Drive files/folders available to attach to a title agent. */ static listGoogleDriveFiles(title_id: string, params?: Record): AxiosPromise>; /** * Attach a Google Drive file as a reference file for an agent. */ static attachGoogleDriveFile(title_id: string, agent_id: string, data?: object, params?: Record): AxiosPromise>; /** * Download a protected agent file through the authenticated API route. * * Returns the native Fetch API Response so callers can inspect headers such * as Content-Disposition before creating a browser download or preview blob. */ static downloadAgentFile(title_id: string, file_id: string, options?: AgentFetchOptions): Promise; /** * Export a generated agent artifact to Google Drive. */ static exportAgentFileToGoogleDrive(title_id: string, file_id: string, data?: object, params?: Record): AxiosPromise>; /** * List agent runs for a title. */ static listRuns(title_id: string, params?: Record): AxiosPromise>; /** * View one durable agent run, including events, files, actions, and guidance when loaded by the API. */ static viewRun(title_id: string, run_id: string, params?: Record): AxiosPromise>; /** * List real-time user-visible events for an agent run. */ static listRunEvents(title_id: string, run_id: string, params?: Record): AxiosPromise>; /** * Mark a queued or running agent run as being watched live so the UI can stream the loop * and the backend can avoid sending delayed background summaries to active viewers. */ static heartbeatRun(title_id: string, run_id: string, data?: object, params?: Record): AxiosPromise>; /** * Request cancellation for a queued or running agent run. */ static cancelRun(title_id: string, run_id: string, data?: object, params?: Record): AxiosPromise>; /** * Send a course correction to a queued or running agent run. */ static interjectRun(title_id: string, run_id: string, data?: object, params?: Record): AxiosPromise>; /** * List agent actions/approval queue for a title. */ static listActions(title_id: string, params?: Record): AxiosPromise>; /** * Approve an agent action. */ static approveAction(title_id: string, action_id: string, data?: object, params?: Record): AxiosPromise>; /** * Reject an agent action. */ static rejectAction(title_id: string, action_id: string, data?: object, params?: Record): AxiosPromise>; /** * Execute an approved safe action. */ static executeAction(title_id: string, action_id: string, data?: object, params?: Record): AxiosPromise>; /** * List guidance requests where agents have stopped for developer direction. */ static listGuidance(title_id: string, params?: Record): AxiosPromise>; /** * Answer a guidance request and write structured agent memory. */ static answerGuidance(title_id: string, guidance_id: string, data?: object, params?: Record): AxiosPromise>; /** * Rewrite an editable agent draft for review without executing the parent action. */ static rewriteAgentDraft(title_id: string, data?: object, params?: Record): AxiosPromise>; /** * Agent workflow convenience wrapper for creator invite context. */ static creatorInviteContext(campaign_id: string, params?: Record): AxiosPromise>; /** * Agent workflow convenience wrapper for sending a reviewed creator invite. */ static sendCreatorInvite(campaign_id: string, data?: object, params?: Record): AxiosPromise>; /** * Agent workflow convenience wrapper for updating a drafted social post. */ static updateSocialPost(post_id: string, data?: object, params?: Record): AxiosPromise>; /** * Agent workflow convenience wrapper for updating campaign settings. */ static updateCampaign(campaign_id: string, data?: object, params?: Record): AxiosPromise>; /** * Agent workflow convenience wrapper for saving manual access keys. */ static createAccessKeys(title_id: string, data: { platform: string; codes: string; }, params?: Record): AxiosPromise>; /** * List structured agent memories for a title. */ static listMemories(title_id: string, params?: Record): AxiosPromise>; /** * Update one structured agent memory. */ static updateMemory(title_id: string, memory_id: string, data?: object, params?: Record): AxiosPromise>; /** * Deactivate one structured agent memory. */ static deactivateMemory(title_id: string, memory_id: string, params?: Record): AxiosPromise>; /** * Get results and outcome summary for title agents. Returns 402 until subscription or prepaid credits are active. */ static results(title_id: string, params?: Record): AxiosPromise>; /** * Get this title's agent usage against plan limits (agents used/included, monthly runs, and * AI dollars spent vs the configured monthly AI budget). Powers usage meters and limit warnings. */ static usage(title_id: string, params?: Record): AxiosPromise>; /** * Get the prepaid agent credit balance and ledger (Pay-As-You-Go plan). */ static credits(title_id: string, params?: Record): AxiosPromise>; /** * Buy prepaid agent credits (Pay-As-You-Go). Charges the card up front; the agent draws down * credits per run and stops when they run out. data: { paymentMethod, amount_usd }. */ static purchaseCredits(title_id: string, data?: object, params?: Record): AxiosPromise>; /** * Start a Stripe-backed agent subscription after setup. */ static startTrial(title_id: string, data?: object, params?: Record): AxiosPromise>; /** * List social/ad schedulers. Useful when agent setup needs to attach to an existing workflow. */ static listSchedulers(params?: Record): AxiosPromise>; /** * Create a scheduler inline from an agent setup flow. */ static createScheduler(data?: object, params?: Record): AxiosPromise>; /** * Cross-title agency cockpit: per-title agent status, billing/credits, and portfolio totals. */ static agencyOverview(params?: Record): AxiosPromise>; /** * Unified cross-title "needs you" inbox (open guidance + pending approvals across all titles). */ static agencyInbox(params?: Record): AxiosPromise>; } interface McpStartRunRequest { agent_id?: string | null; initial_message?: string | null; prompt?: string | null; run_type?: string; trigger_source?: string; background?: boolean; live_mode?: boolean; attachment_ids?: string[]; [key: string]: any; } /** * Client for the Glitch MCP paid facade (/mcp/v1). * * Authenticate with a Glitch user JWT or a title-scoped MCP token. The facade * enforces subscription, title permissions, scope, and approval guardrails on * every call; this client only forwards requests. */ declare class Mcp { /** Health/auth probe. Returns authenticated=false (200) when no credential is set. */ static authStatus(params?: Record): AxiosPromise>; /** List titles visible to the current user token or title-scoped MCP token. */ static listTitles(params?: Record): AxiosPromise>; /** Fetch safe, subscription-gated workspace context for a title. */ static titleContext(title_id: string, params?: Record): AxiosPromise>; /** Check subscription, trial, plan, and credit state for a title. */ static billing(title_id: string, params?: Record): AxiosPromise>; /** Start a paid Glitch Agent run for a title. */ static startRun(title_id: string, data?: McpStartRunRequest, params?: Record): AxiosPromise>; /** Fetch a durable run with status, actions, guidance, events, files, and report. */ static viewRun(title_id: string, run_id: string, params?: Record): AxiosPromise>; /** List user-visible timeline events for a run. */ static runEvents(title_id: string, run_id: string, params?: Record): AxiosPromise>; /** Fetch the human-friendly final or partial report for a run. */ static finalReport(title_id: string, run_id: string, params?: Record): AxiosPromise>; /** * Server-Sent Events URL for a run's live event stream. * * Returns the absolute URL to open with an EventSource/fetch reader; the * endpoint emits `status`, `run_event`, and a terminal `settled`/`timeout` event. */ static runStreamUrl(title_id: string, run_id: string, params?: Record): string; /** List downloadable files and hosted report artifacts for a run. */ static artifacts(title_id: string, run_id: string, params?: Record): AxiosPromise>; /** List proposed/guidance/approval/executed actions for a title. */ static listActions(title_id: string, params?: Record): AxiosPromise>; /** Approve a reviewable action. Execution remains guarded server-side. */ static approveAction(title_id: string, action_id: string, data?: object, params?: Record): AxiosPromise>; /** Reject a proposed or approval-needed action. */ static rejectAction(title_id: string, action_id: string, data?: object, params?: Record): AxiosPromise>; /** Execute an approved action. Public/paid/creator-facing work stays guarded. */ static executeAction(title_id: string, action_id: string, data?: object, params?: Record): AxiosPromise>; /** List open or answered guidance requests for a title or run. */ static listGuidance(title_id: string, params?: Record): AxiosPromise>; /** Answer a guidance request and resume the server-side workflow when possible. */ static answerGuidance(title_id: string, guidance_id: string, data?: object, params?: Record): AxiosPromise>; /** Get instructions for uploading a file (points at uploadFile below). */ static createUpload(title_id: string, data?: object, params?: Record): AxiosPromise>; /** * Upload a file (image, video, or document) to a title or run as multipart/form-data. * The facade re-checks the title scope, subscription, and allowed mime types. */ static uploadFile(title_id: string, file: File | Blob, data?: object, params?: Record, onUploadProgress?: (progressEvent: AxiosProgressEvent) => void): AxiosPromise>; /** List MCP title tokens (user JWT only). */ static listTokens(title_id: string, params?: Record): AxiosPromise>; /** Create a revocable title-scoped MCP token (user JWT only). */ static createToken(title_id: string, data?: object, params?: Record): AxiosPromise>; /** Revoke a title-scoped MCP token (user JWT only). */ static revokeToken(title_id: string, token_id: string, params?: Record): AxiosPromise>; } /** * Allowed outlet types in the PR directory. */ type PrPublicationType = "blog" | "podcast" | "publication"; /** * Eligibility state for a PR outlet. */ type PrEligibilityStatus = "eligible" | "ineligible" | "needs_review" | "duplicate" | "archived"; /** * Verification state used by PR outlets, people, links, and contact points. */ type PrVerificationStatus = "unverified" | "verified" | "stale" | "blocked" | "failed" | "needs_review"; /** * Email health status stored on the outlet-level PR email field. */ type PrEmailStatus = "unknown" | "verified" | "bounced" | "missing" | "needs_review"; /** * Contact verification state for normalized contact points. */ type PrContactVerificationStatus = "unverified" | "verified" | "stale" | "bounced" | "invalid" | "blocked" | "needs_review"; /** * Link refresh status for evidence URLs. */ type PrLinkStatus = "unverified" | "ok" | "redirected" | "broken" | "blocked" | "failed" | "stale"; /** * Refresh state for discovered RSS/Atom/JSON feeds. */ type PrFeedStatus = "unverified" | "ok" | "empty" | "blocked" | "failed" | "stale" | "needs_review"; /** * Feed format detected during PR content ingestion. */ type PrFeedType = "rss" | "atom" | "json" | "unknown"; /** * Filters accepted by `/pr/publications` and `/pr/report`. * * Tag filters are human-readable slugs from `/pr/tags`. The backend accepts * format, genre, platform, and audience as namespace-specific tag filters so * frontend screens can expose simple controls without knowing pivot table * details. */ interface PrPublicationSearchParams { q?: string; type?: PrPublicationType; eligibility_status?: PrEligibilityStatus; verification_status?: PrVerificationStatus; dedicated_to_gaming?: boolean; has_email?: boolean; country?: string; language?: string; canonical_domain?: string; tag?: string; format?: string; genre?: string; platform?: string; audience?: string; sort?: "name" | "-name" | "type" | "-type" | "eligibility_status" | "-eligibility_status" | "verification_status" | "-verification_status" | "last_verified_at" | "-last_verified_at" | "updated_at" | "-updated_at" | string; page?: number; per_page?: number; } /** * Filters accepted by `/pr/people`. */ interface PrPeopleSearchParams { q?: string; publication_id?: string; role_category?: string; is_active?: boolean; verification_status?: PrVerificationStatus; has_email?: boolean; tag?: string; role?: string; sort?: "name" | "-name" | "verification_status" | "-verification_status" | "last_verified_at" | "-last_verified_at" | "updated_at" | "-updated_at" | string; page?: number; per_page?: number; } /** * Filters accepted by `/pr/feeds`. */ interface PrFeedSearchParams { q?: string; publication_id?: string; feed_type?: PrFeedType; status?: PrFeedStatus; source?: string; has_stories?: boolean; sort?: "title" | "-title" | "feed_type" | "-feed_type" | "status" | "-status" | "last_fetched_at" | "-last_fetched_at" | "next_fetch_at" | "-next_fetch_at" | "updated_at" | "-updated_at" | string; page?: number; per_page?: number; include_raw?: boolean; } /** * Filters accepted by `/pr/stories`. */ interface PrStorySearchParams { q?: string; publication_id?: string; pr_feed_id?: string; pr_person_id?: string; story_type?: string; language?: string; ingestion_status?: string; has_author?: boolean; published_after?: string; published_before?: string; sort?: "published_at" | "-published_at" | "updated_at" | "-updated_at" | "title" | "-title" | string; page?: number; per_page?: number; } /** * Filters accepted by `/pr/tags`. */ interface PrTagSearchParams { namespace?: string; q?: string; } /** * Query parameters accepted by `/titles/{title_id}/pr/matches`. * * The title matcher uses the title profile plus optional human-readable search * context to rank eligible outlets and explain why each outlet is a fit. */ interface PrTitleMatchParams extends PrPublicationSearchParams { genres?: string[]; platforms?: string[]; audiences?: string[]; limit?: number; } /** * Query parameters accepted by `/titles/{title_id}/pr/research`. */ interface PrTitleResearchParams extends PrStorySearchParams { limit?: number; story_sort?: string; } /** * Request body accepted by `/admin/pr/verification/queue`. */ interface PrQueueVerificationRequest { due?: boolean; limit?: number; link_ids?: string[]; } /** * Review-only PR draft request for `/titles/{title_id}/pr/drafts`. */ interface PrTitleDraftRequest { publication_id?: string; pr_person_id?: string; q?: string; prompt?: string; press_kit_url?: string; trailer_url?: string; demo_or_review_key?: string; embargo_or_timing?: string; sender?: { name?: string; }; use_ai?: boolean; } /** * Admin request body for `/admin/pr/feeds/refresh`. */ interface PrFeedRefreshRequest { discover?: boolean; due?: boolean; queue?: boolean; limit?: number; feed_ids?: string[]; publication_ids?: string[]; } /** * A normalized metadata tag used to filter and match PR outlets, people, and * roles. */ interface PrTag { id: string; namespace: string; slug: string; label: string; description?: string | null; pivot?: { confidence?: number | null; source?: string | null; source_link_id?: string | null; verified_at?: string | null; metadata?: Record | null; }; metadata?: Record; created_at?: string | null; updated_at?: string | null; } /** * A refreshable evidence URL that supports an outlet, person, role, or contact * point. */ interface PrLink { id: string; linkable_type?: string | null; linkable_id?: string | null; link_type: string; url: string; canonical_url?: string | null; final_url?: string | null; domain?: string | null; priority: number; http_status?: number | null; status: PrLinkStatus; content_type?: string | null; content_hash?: string | null; etag?: string | null; last_modified_at?: string | null; last_checked_at?: string | null; next_check_at?: string | null; last_error?: string | null; is_source_of_truth: boolean; metadata?: Record; created_at?: string | null; updated_at?: string | null; } /** * RSS/Atom/JSON feed discovered for a publication and used for story research. */ interface PrFeed { id: string; publication_id: string; pr_link_id?: string | null; feed_url: string; canonical_url?: string | null; feed_type: PrFeedType; title?: string | null; description?: string | null; language?: string | null; status: PrFeedStatus; http_status?: number | null; content_type?: string | null; etag?: string | null; raw_feed_hash?: string | null; raw_feed_content?: string | null; raw_feed_size?: number; last_modified_at?: string | null; last_fetched_at?: string | null; next_fetch_at?: string | null; item_count_last_fetch: number; source?: string | null; last_error?: string | null; publication?: PrPublication | null; stories_count?: number; stories?: PrStory[]; metadata?: Record; created_at?: string | null; updated_at?: string | null; } /** * A story, article, guide, review, or episode imported from a PR feed. */ interface PrStory { id: string; publication_id: string; pr_feed_id?: string | null; canonical_url?: string | null; guid?: string | null; title: string; dek?: string | null; summary?: string | null; content_excerpt?: string | null; content_hash?: string | null; author_name_raw?: string | null; author_email_raw?: string | null; author_url_raw?: string | null; published_at?: string | null; updated_at_feed?: string | null; story_type?: string | null; language?: string | null; categories?: string[]; tags?: string[]; media_url?: string | null; analysis?: Record; ingestion_status?: string | null; publication?: PrPublication | null; feed?: PrFeed | null; authors?: PrStoryAuthor[]; created_at?: string | null; updated_at?: string | null; } /** * Raw byline evidence and optional match to a known PR contact. */ interface PrStoryAuthor { id: string; pr_story_id: string; publication_id?: string | null; pr_person_id?: string | null; author_name?: string | null; author_email?: string | null; author_url?: string | null; confidence?: number | null; match_source?: string | null; evidence?: Record; story?: PrStory | null; person?: PrPerson | null; created_at?: string | null; updated_at?: string | null; } /** * A normalized way to reach an outlet, person, or publication role. */ interface PrContactPoint { id: string; contactable_type: string; contactable_id: string; pr_link_id?: string | null; contact_type: "email" | "linkedin" | "x" | "bluesky" | "contact_form" | string; label?: string | null; value: string; normalized_value: string; verification_status: PrContactVerificationStatus; confidence?: number | null; is_primary: boolean; first_seen_at?: string | null; last_seen_at?: string | null; source_link?: PrLink | null; metadata?: Record; created_at?: string | null; updated_at?: string | null; } /** * The role a PR person has at one publication, blog, or podcast. */ interface PublicationPerson { id: string; publication_id: string; pr_person_id: string; source_link_id?: string | null; role_title?: string | null; role_category?: string | null; email?: string | null; email_status: "unknown" | "verified" | "bounced" | "invalid" | "needs_review"; is_primary_contact: boolean; is_current: boolean; confidence?: number | null; started_at?: string | null; ended_at?: string | null; last_verified_at?: string | null; source_notes?: string | null; person?: PrPerson | null; publication?: PrPublication | null; source_link?: PrLink | null; contact_points?: PrContactPoint[]; tags?: PrTag[]; metadata?: Record; created_at?: string | null; updated_at?: string | null; } /** * A gaming-focused publication, independent blog, or podcast in the PR * directory. */ interface PrPublication { id: string; name: string; slug?: string | null; type: PrPublicationType; url?: string | null; canonical_domain?: string | null; description?: string | null; main_pr_email?: string | null; main_pr_email_status: PrEmailStatus; dedicated_to_gaming: boolean; eligibility_status: PrEligibilityStatus; exclusion_reason?: string | null; language?: string | null; country?: string | null; network_or_owner?: string | null; verification_status: PrVerificationStatus; last_verified_at?: string | null; next_verification_at?: string | null; source_imported_at?: string | null; people_count?: number; contact_points_count?: number; links_count?: number; feeds_count?: number; stories_count?: number; people?: PublicationPerson[]; contact_points?: PrContactPoint[]; links?: PrLink[]; feeds?: PrFeed[]; stories?: PrStory[]; tags?: PrTag[]; metadata?: Record; created_at?: string | null; updated_at?: string | null; } /** * A journalist, editor, podcast host, producer, contributor, or other PR * contact associated with one or more gaming-focused outlets. */ interface PrPerson { id: string; name: string; slug?: string | null; bio?: string | null; location?: string | null; linkedin_url?: string | null; x_url?: string | null; bluesky_url?: string | null; website_url?: string | null; is_active: boolean; verification_status: PrVerificationStatus; last_verified_at?: string | null; next_verification_at?: string | null; roles_count?: number; contact_points_count?: number; links_count?: number; stories_count?: number; roles?: PublicationPerson[]; contact_points?: PrContactPoint[]; links?: PrLink[]; stories?: PrStoryAuthor[]; tags?: PrTag[]; metadata?: Record; created_at?: string | null; updated_at?: string | null; } /** * Aggregate PR directory health metrics returned by `/pr/report`. */ interface PrDirectoryReport { generated_at: string; publications: { total: number; by_type: Record; by_eligibility_status: Record; by_verification_status: Record; dedicated_to_gaming: number; with_email: number; due_for_verification: number; }; people: { total: number; active: number; with_email: number; by_verification_status: Record; }; links: { total: number; by_type: Record; by_status: Record; due_for_check: number; }; contacts: { total: number; by_type: Record; by_status: Record; }; tags: { total: number; by_namespace: Record; }; feeds: { total: number; by_status: Record; due_for_fetch: number; }; stories: { total: number; with_author: number; by_type: Record; }; } /** * A ranked title-to-outlet match with evidence, contact route, and plain-English * explanation. */ interface PrTitleMatch { publication: PrPublication; score: number; matched_tags: string[]; best_contact_path?: Record | null; why: string[]; risks: string[]; evidence_links: PrLink[]; } /** * Title-scoped PR research workspace response. */ interface PrTitleResearchResponse { generated_at: string; title: { id: string; name: string; slug?: string | null; short_description?: string | null; description?: string | null; genres?: string[]; platforms?: string[]; website_url?: string | null; steam_url?: string | null; itch_url?: string | null; demo_url?: string | null; video_url?: string | null; }; readiness: { score: number; strengths: string[]; gaps: string[]; }; publication_matches: PrTitleMatch[]; stories: PrStory[]; story_summary: { count: number; with_known_author: number; publication_count: number; }; suggested_next_steps: string[]; } /** * Structured draft fields returned alongside the formatted HTML email body. */ interface PrOutreachDraft { subject?: string | null; opener?: string | null; body?: string | null; body_html?: string | null; key_points?: string[]; personalization_notes?: string[]; review_notes?: string[]; missing_context_warnings?: string[]; [key: string]: any; } /** * Review-only PR draft response. The API never sends email from this endpoint. */ interface PrTitleDraftResponse { draft_status: "draft_only_not_sent" | "no_verified_email_found" | "no_publication_found" | string; emails_sent: boolean; publication?: PrPublication | null; person?: PrPerson | null; target: Record; recent_stories: PrStory[]; draft: PrOutreachDraft; body_html: string; review_notes: string[]; } /** * Response body returned after queueing PR verification jobs. */ interface PrQueueVerificationResponse { queued: number; } /** * Response body returned after discovering, queueing, or fetching PR feeds. */ interface PrFeedRefreshResponse { discovered: number; queued: number; fetched: number; } /** * SDK wrapper for the PR Directory API. * * The PR directory is read-friendly by default: public endpoints expose * searchable publications, people, feeds, stories, tags, and reporting metrics. * Authenticated title admins can request title-specific research and review-only * outreach drafts, and site admins can queue verification or feed refresh jobs. */ declare class PrDirectory { /** * Search gaming-focused PR publications, independent blogs, and podcasts. * * @example * ```ts * Glitch.api.PrDirectory.listPublications({ * q: "indie RPG", * has_email: true, * eligibility_status: "eligible", * sort: "-last_verified_at", * }); * ``` */ static listPublications(params?: PrPublicationSearchParams): AxiosPromise>; /** * Retrieve one PR publication profile with loaded people, contact points, * evidence links, and tags. */ static viewPublication(publication_id: string, params?: Record): AxiosPromise>; /** * Search PR people and roles across all known publications. * * @example * ```ts * Glitch.api.PrDirectory.listPeople({ * q: "reviews editor", * has_email: true, * role_category: "editor", * }); * ``` */ static listPeople(params?: PrPeopleSearchParams): AxiosPromise>; /** * Retrieve one PR person profile with their outlet roles, profile links, * contact points, and metadata tags. */ static viewPerson(person_id: string, params?: Record): AxiosPromise>; /** * Search discovered RSS/Atom/JSON feeds across known publications. */ static listFeeds(params?: PrFeedSearchParams): AxiosPromise>; /** * Retrieve one feed with freshness metadata and recent imported stories. * Pass `include_raw: true` to request the stored XML/RSS payload. */ static viewFeed(feed_id: string, params?: PrFeedSearchParams): AxiosPromise>; /** * Search imported stories, reviews, guides, and episodes by outlet or byline. */ static listStories(params?: PrStorySearchParams): AxiosPromise>; /** * Retrieve one imported story with feed, publication, and byline evidence. */ static viewStory(story_id: string, params?: Record): AxiosPromise>; /** * List the normalized tag vocabulary used for PR search, filters, matching, * and reporting. */ static listTags(params?: PrTagSearchParams): AxiosPromise>; /** * Get aggregate PR directory reporting metrics. Publication filters can be * supplied to scope the outlet portion of the report. */ static report(params?: PrPublicationSearchParams): AxiosPromise>; /** * Match a registered game title to PR outlets. Requires an auth token for a * user who can administer the requested title. */ static titleMatches(title_id: string, params?: PrTitleMatchParams): AxiosPromise>; /** * Get a title-scoped PR research workspace with outlet matches, recent story * context, media kit readiness, and next steps. */ static titleResearch(title_id: string, params?: PrTitleResearchParams): AxiosPromise>; /** * Create a formatted, review-only PR email draft for a selected title target. * The backend returns HTML with paragraphs, bullets, and links but sends no email. */ static titleDraft(title_id: string, data?: PrTitleDraftRequest, params?: Record): AxiosPromise>; /** * Queue PR verification jobs. Requires a site-admin auth token. * * @example * ```ts * Glitch.api.PrDirectory.queueVerification({ due: true, limit: 250 }); * ``` */ static queueVerification(data?: PrQueueVerificationRequest, params?: Record): AxiosPromise>; /** * Discover, queue, or synchronously refresh PR feeds. Requires a site-admin * auth token. */ static refreshFeeds(data?: PrFeedRefreshRequest, params?: Record): AxiosPromise>; } declare class AdminReports { /** * Returns aggregate site-admin reporting for user growth, churn, acquisition, * engagement, and user-generated revenue. */ static usersRevenue(params?: Record): AxiosPromise>; /** * Returns site-admin Steam market reports, including social profile coverage, * platform usage, follower benchmarks, review/player relationships, and * optional target-app game reports. */ static steam(params?: Record): AxiosPromise>; } /** * Site-administrator user management. * * These endpoints back the admin dashboard user directory. They require a * site-admin auth token (Super Administrator or Administrator), and * impersonation additionally requires a Super Administrator token. */ declare class AdminUsers { /** * List and search all users in the system. * * Supported params include `search` (matches name, username, email, or id), * `is_site_admin`, `is_verified`, `sort_by`, `sort_order`, `per_page`, and * `page`. * * @param params Optional query parameters. * @returns promise */ static list(params?: Record): AxiosPromise>; /** * Retrieve aggregated user analytics for the admin directory. * * Supported params include `search`, `is_site_admin`, `is_verified`, * `user_type`, `start_date`, `end_date`, `period`, `sort_by`, and * `sort_order`. * * @param params Optional query parameters. * @returns promise */ static analytics(params?: Record): AxiosPromise>; /** * Retrieve a comprehensive profile for a single user, including communities, * administered titles, games played, roles, billing status, social presence, * and activity counts. * * @param user_id The id of the user to view. * @param params Optional query parameters. * @returns promise */ static view(user_id: string, params?: Record): AxiosPromise>; /** * Impersonate a user. Issues a JWT for the target account so a Super * Administrator can operate as that user. Administrator accounts cannot be * impersonated, and every call is written to the impersonation audit log. * * @param user_id The id of the user to impersonate. * @returns promise resolving to an access token and the impersonated user summary. */ static impersonate(user_id: string): AxiosPromise>; } declare class MarketResearch { static access(params?: Record): AxiosPromise>; static filterOptions(params?: Record): AxiosPromise>; static listGames(params?: Record): AxiosPromise>; static viewGame(game_id: string, params?: Record): AxiosPromise>; static exportGames(params?: Record): AxiosPromise; static exportGame(game_id: string, params?: Record): AxiosPromise; } interface GameAdEventPayload { /** Opaque token returned by the server-created advertising manifest. */ token: string; /** Client idempotency UUID. Reuse is valid only within the same ad session. */ event_uuid?: string; /** Provider that produced or attempted the event. */ provider: string; /** Stable Glitch placement name, such as game_banner or game_video. */ placement: string; /** Normalized creative/ad format. */ format: 'banner' | 'video' | 'interstitial' | 'rewarded' | 'in_game_image' | 'in_game_video' | 'other'; /** Normalized SDK/ad lifecycle event. */ event_type: 'sdk_ready' | 'request_started' | 'loaded' | 'channel_registered' | 'measurement' | 'no_fill' | 'fallback_shown' | 'started' | 'impression' | 'viewable' | 'clicked' | 'completed' | 'skipped' | 'closed' | 'paused_game' | 'resumed_game' | 'error'; /** Optional provider-native event or impression identifier. */ provider_event_id?: string; /** Non-sensitive provider diagnostics and event context. */ metadata?: Record; /** ISO 8601 client-observed timestamp. Defaults to server receipt time. */ occurred_at?: string; } /** Provider-neutral intrinsic-ad surface declared by a game developer. */ interface GameInGameAdPlacement { id?: string; title_id?: string; provider?: 'anzu'; placement_key: string; channel_name: string; surface_type: 'mesh' | 'sprite' | 'ui_image' | 'raw_image' | 'html' | 'electron_shell'; scene_name?: string | null; aspect_ratio: number; allow_images: boolean; allow_videos: boolean; allow_audio?: boolean; is_dynamic: boolean; is_clickable: boolean; shrink_to_fit: boolean; fallback_media_url?: string | null; status: 'active' | 'disabled'; metadata?: Record | null; } /** Public delivery identity for a provider and runtime platform. */ interface GameAdProviderApp { id?: string; title_id?: string | null; provider: 'anzu'; platform: 'web' | 'electron_macos' | 'electron_windows' | 'electron_linux' | 'unity_webgl' | 'cocos_web' | 'construct_web'; app_key: string; bundle_id?: string | null; mode: 'integration' | 'production'; integration_type: 'managed' | 'direct'; status: 'active' | 'disabled' | 'pending'; metadata?: Record | null; } /** * Typed client for platform-served game advertising. * * These endpoints manage publisher inventory displayed around playable games; * they are intentionally separate from APIs used to buy advertising campaigns. */ declare class GameAdvertising { /** Return developer-visible ad-earnings settings for a title. */ static settings(title_id: string): AxiosPromise>; /** Update developer ad-earnings activation and optional title provider ID. */ static updateSettings(title_id: string, data: object): AxiosPromise>; /** Resolve ad eligibility and create an expiring provider manifest/session. */ static createSession(title_id: string, data: object): AxiosPromise>; /** Store one normalized, idempotent event for an advertising session. */ static storeEvent(title_id: string, session_id: string, data: GameAdEventPayload): AxiosPromise>; /** Return developer-visible estimated/finalized earnings and delivery totals. */ static revenueSummary(title_id: string, params?: Record): AxiosPromise>; /** Return every intrinsic-ad surface configured for a title. */ static inGamePlacements(title_id: string): AxiosPromise>; /** Atomically replace a title's provider-neutral intrinsic-ad surfaces. */ static replaceInGamePlacements(title_id: string, placements: GameInGameAdPlacement[]): AxiosPromise>; /** Return site-admin delivery settings, aggregate metrics, and recent revenue. */ static adminDashboard(): AxiosPromise>; /** Partially update platform-wide providers and delivery frequency. */ static adminUpdateSettings(data: object): AxiosPromise>; /** Import or reconcile one provider revenue report row. */ static adminStoreRevenue(data: object): AxiosPromise>; /** Return public provider app keys and platform mappings for site admins. */ static adminProviderApps(): AxiosPromise>; /** Create or update a provider app mapping without accepting report secrets. */ static adminUpsertProviderApp(data: GameAdProviderApp): AxiosPromise>; } type HostingPlanKey = 'free' | 'launch' | 'growth' | 'scale' | 'studio'; type HostingMode = 'static' | 'server'; type HostingDatabaseEngine = 'postgresql' | 'mysql' | 'azure_sql' | 'cosmos_nosql' | 'redis'; type HostingDatabasePlan = 'sandbox' | 'launch' | 'growth' | 'scale' | 'dedicated' | 'cache_sandbox' | 'cache_launch' | 'cache_growth' | 'cache_scale'; type HostingServiceRole = 'web' | 'api' | 'game' | 'realtime' | 'simulation' | 'worker' | 'scheduled'; type HostingServiceVisibility = 'public' | 'internal' | 'none'; type HostingCapacityModel = 'singleton' | 'replicated' | 'serverless'; type HostingBillingProvider = 'direct' | 'microsoft_marketplace' | 'aws_marketplace'; interface HostingDatabase { id: string; hosting_site_id: string; name: string; engine: HostingDatabaseEngine; plan: HostingDatabasePlan; status: 'awaiting_payment' | 'requested' | 'provisioning' | 'ready' | 'resizing' | 'restoring' | 'failed' | 'deleting' | 'deleted'; deployment_model: 'shared' | 'dedicated' | 'serverless' | 'managed_cache'; azure_region: string; included_storage_bytes: number; current_storage_bytes: number; auto_grow_enabled: boolean; backup_retention_days: number; high_availability_enabled: boolean; endpoint?: string | null; port?: number | null; binding_name: string; billing_status: 'awaiting_payment' | 'active' | 'past_due' | 'unpaid' | 'cancelled' | 'expired' | 'failed'; billing_provider: HostingBillingProvider; billing_active: boolean; last_error?: string | null; } interface HostingDatabaseCredentials { database_id: string; name: string; engine: HostingDatabaseEngine; binding_name: string; connection_string: string; connection: { driver?: string; host?: string; endpoint?: string; port?: number; database?: string; username?: string; password?: string; key?: string; tls: boolean; }; revealed_at: string; /** UI safety timer only; the database credential itself does not expire after this interval. */ hide_after_seconds: number; } interface HostingServiceVolume { name: string; mount_path: string; size_gb: number; access_mode?: 'ReadOnly' | 'ReadWrite'; } interface HostingServiceDeployment { id: string; hosting_service_id: string; hosting_release_id: string; game_build_id?: string | null; version: string; status: 'queued' | 'deploying' | 'ready' | 'active' | 'inactive' | 'failed'; image?: string | null; public_url?: string | null; error_message?: string | null; ready_at?: string | null; promoted_at?: string | null; } interface HostingService { id: string; hosting_site_id: string; name: string; slug: string; role: HostingServiceRole; runtime: 'node' | 'python' | 'rust' | 'container'; visibility: HostingServiceVisibility; status: 'draft' | 'deploying' | 'active' | 'disabled' | 'failed'; is_primary: boolean; target_port?: number | null; transport: 'http' | 'http2' | 'tcp'; health_check_path?: string | null; startup_check_path?: string | null; readiness_check_path?: string | null; liveness_check_path?: string | null; capacity_model: HostingCapacityModel; container_cpu: number; container_memory_mb: number; min_replicas: number; max_replicas: number; schedule_cron?: string | null; termination_grace_seconds: number; depends_on: string[]; public_paths: string[]; volumes: HostingServiceVolume[]; database_bindings: string[]; secret_names: string[]; active_deployment?: HostingServiceDeployment | null; deployments?: HostingServiceDeployment[]; } interface HostingServiceDefinition { name?: string; slug: string; role?: HostingServiceRole; runtime?: 'node' | 'python' | 'rust' | 'container'; visibility?: HostingServiceVisibility; is_primary?: boolean; target_port?: number; transport?: 'http' | 'http2' | 'tcp'; health_check_path?: string; startup_check_path?: string; readiness_check_path?: string; liveness_check_path?: string; capacity_model?: HostingCapacityModel; container_cpu?: number; container_memory_mb?: number; min_replicas?: number; max_replicas?: number; schedule_cron?: string; termination_grace_seconds?: number; depends_on?: string[]; public_paths?: string[]; volumes?: HostingServiceVolume[]; environment?: Record; database_bindings?: string[]; configuration?: Record; command?: string[]; arguments?: string[]; game_build_id?: string; } interface HostingServiceStackRequest { preset?: 'single_server' | 'stateful_game_server' | 'web_and_api' | 'authoritative_world' | 'large_realtime_world'; game_build_id?: string; builds?: Record; services?: HostingServiceDefinition[]; } interface ApplyHostingServiceStackRequest extends HostingServiceStackRequest { version: string; test?: { service: string; command: string[]; }; migration?: { service: string; command: string[]; }; } interface HostingServiceEstimate { billing_provider: HostingBillingProvider; estimated_monthly_floor_cents: number; estimated_monthly_floor_dollars: number; services: Array>; rates: { vcpu_hour_cents: number; memory_gib_hour_cents: number; requests_million_cents: number; persistent_storage_gib_month_cents: number; }; note: string; } interface CreateHostingSiteRequest { name: string; slug: string; mode: HostingMode; azure_region?: string; } interface CreateHostingReleaseRequest { version: string; source_type: 'upload' | 'cli' | 'game_build'; blob_path?: string; game_build_id?: string; /** Proven relative path in the finished artifact. Never guess index.html or package.json. */ entry_point: string; } interface HostingCheckoutResult { database?: HostingDatabase; action?: string; checkout_url?: string | null; /** Stripe Embedded Checkout client secret for same-page card collection and 3DS. */ checkout_client_secret?: string | null; checkout_mode?: 'embedded' | 'hosted' | null; checkout_session_id?: string | null; billing_provider?: HostingBillingProvider; message?: string; } interface HostingAiInstructionsRequest extends HostingServiceStackRequest { framework?: string; custom_domain?: string; databases?: Array>; version?: string; /** Candidate only; the generated instructions require proof from the finished artifact. */ entry_point?: string; } interface CreateHostingDatabaseRequest { name: string; engine: HostingDatabaseEngine; plan: HostingDatabasePlan; azure_region: string; auto_grow_enabled?: boolean; high_availability_enabled?: boolean; } /** * Typed SDK for game website hosting, managed database add-ons, domains, usage, * deployment instructions, and hosted-play attribution. */ declare class Hosting { static catalog(): AxiosPromise>; static dashboard(title_id: string): AxiosPromise>; static channelAnalytics(title_id: string, params?: Record): AxiosPromise>; /** Start or apply a bandwidth-based Hosting plan, separate from Store distribution. */ static billingCheckout(title_id: string, plan: HostingPlanKey): AxiosPromise>; /** Confirm a paid Stripe Checkout session before provisioning its add-on. */ static confirmBillingCheckout(title_id: string, checkout_session_id: string): AxiosPromise>; /** Resolve the one-hour purchase token passed to Glitch by Microsoft Marketplace. */ static resolveMarketplacePurchase(token: string): AxiosPromise>; /** Link a resolved Microsoft Marketplace subscription to a billable Glitch business account. */ static activateMarketplaceSubscription(subscription_id: string, community_id: string): AxiosPromise>; /** Retrieve safe Microsoft Marketplace entitlement and lifecycle status. */ static marketplaceSubscription(subscription_id: string): AxiosPromise>; /** Claim the one-time Glitch code created after AWS ResolveCustomer succeeds. */ static resolveAwsMarketplacePurchase(activation_code: string): AxiosPromise>; /** Connect a paid AWS Marketplace contract to one Glitch business account. */ static activateAwsMarketplaceSubscription(subscription_id: string, community_id: string): AxiosPromise>; /** Refresh and retrieve the safe AWS Marketplace entitlement state. */ static awsMarketplaceSubscription(subscription_id: string): AxiosPromise>; static createSite(title_id: string, data: CreateHostingSiteRequest): AxiosPromise>; static updateSite(title_id: string, site_id: string, data: Partial & Record): AxiosPromise>; static createUploadUrl(title_id: string, site_id: string): AxiosPromise>; /** Upload directly to the short-lived signed URL returned by createUploadUrl. */ static uploadBuild(uploadUrl: string, file: Blob, requiredHeaders?: Record, onUploadProgress?: (event: AxiosProgressEvent) => void): AxiosPromise; static releases(title_id: string, site_id: string, params?: Record): AxiosPromise>; static createRelease(title_id: string, site_id: string, data: CreateHostingReleaseRequest): AxiosPromise>; static promoteRelease(title_id: string, site_id: string, release_id: string): AxiosPromise>; static connectDomain(title_id: string, site_id: string, hostname: string): AxiosPromise>; static verifyDomain(title_id: string, site_id: string, domain_id: string): AxiosPromise>; static checkDomain(hostname: string): AxiosPromise>; static purchaseDomain(title_id: string, site_id: string, data: Record): AxiosPromise>; static aiInstructions(title_id: string, site_id: string, data?: HostingAiInstructionsRequest): AxiosPromise>; static services(title_id: string, site_id: string): AxiosPromise>; /** Calculate the always-on floor without creating resources or charges. */ static estimateServices(title_id: string, site_id: string, data: HostingServiceStackRequest): AxiosPromise>; /** Queue an immutable multi-service release. Publishing remains a separate operation. */ static applyServices(title_id: string, site_id: string, data: ApplyHostingServiceStackRequest): AxiosPromise>; /** Store or rotate a secret. The API never returns the value. Interactive administrators only. */ static putServiceSecret(title_id: string, site_id: string, service_id: string, name: string, value: string): AxiosPromise>; static deleteServiceSecret(title_id: string, site_id: string, service_id: string, name: string): AxiosPromise>; static resolve(hostname: string, gatewayToken?: string): AxiosPromise>; static startPlaySession(data: Record): AxiosPromise>; static heartbeatPlaySession(session_id: string, sessionToken: string): AxiosPromise>; static databases(title_id: string, site_id: string, params?: Record): AxiosPromise>; static createDatabase(title_id: string, site_id: string, data: CreateHostingDatabaseRequest): AxiosPromise>; static database(title_id: string, site_id: string, database_id: string): AxiosPromise>; /** * Reveal credentials to a signed-in business billing administrator after an * exact database-name confirmation. Hosting and MCP tokens are rejected. */ static databaseCredentials(title_id: string, site_id: string, database_id: string, confirmation: string): AxiosPromise>; static updateDatabase(title_id: string, site_id: string, database_id: string, data: Record): AxiosPromise>; static retryDatabase(title_id: string, site_id: string, database_id: string): AxiosPromise>; static deleteDatabase(title_id: string, site_id: string, database_id: string, confirmation: string): AxiosPromise>; } type GameDesignGenre = 'action' | 'adventure' | 'rpg' | 'strategy' | 'simulation' | 'puzzle' | 'survival' | 'platformer' | 'racing' | 'sports' | 'cozy' | 'horror' | 'card' | 'sandbox'; type GameDesignPlayMode = 'single-player' | 'cooperative' | 'competitive multiplayer' | 'asynchronous multiplayer'; type GameDesignSessionLength = '5–10 minute' | '15–30 minute' | '30–60 minute' | 'open-ended'; interface GameDesignBlueprintInput { gameName?: string; /** Primary deterministic fallback profile retained for older clients. */ genre?: GameDesignGenre; /** Exact genre names selected from Utility.listGenres(). */ genres?: string[]; playMode: GameDesignPlayMode; sessionLength: GameDesignSessionLength; playerFantasy: string; setting: string; primaryGoal: string; mainPressure: string; signatureTwist: string; progression?: string; preferredActivities?: string; } interface GameDesignBlueprintItem { title: string; description: string; } interface GameDesignBlueprint { gameName: string; descriptor: string; shortPitch: string; coreFantasy: string; coreVerbs: string[]; pillars: GameDesignBlueprintItem[]; mechanics: GameDesignBlueprintItem[]; coreLoop: GameDesignBlueprintItem[]; sessionLoop: string[]; coreTest: string; scopeRules: string[]; documentationInstruction: string; ai_used: boolean; } /** Public AI-assisted tools for turning an early game idea into testable design documentation. */ declare class GameDesign { /** Generate a mechanics and core-loop blueprint without requiring authentication. */ static generateBlueprint(input: GameDesignBlueprintInput): AxiosPromise>; } type FestivalPostKind = 'discussion' | 'job' | 'talent'; type FestivalPostState = 'active' | 'locked' | 'archived' | 'hidden' | 'deleted' | 'removed' | 'paused' | 'filled' | 'expired' | 'closed'; type FestivalApplicationState = 'submitted' | 'viewed' | 'shortlisted' | 'interview' | 'accepted' | 'rejected' | 'withdrawn' | 'closed'; type FestivalWorkType = 'full_time' | 'part_time' | 'contract' | 'gig'; type FestivalRequestOptions = Pick; interface FestivalNetworkingSettings { discussions_enabled: boolean; jobs_enabled: boolean; employer_posts_enabled: boolean; talent_posts_enabled: boolean; matching_enabled: boolean; voting_enabled: boolean; comments_enabled: boolean; media_enabled: boolean; /** Registration or a valid ticket is mandatory; cannot be disabled. */ require_registration: true; public_viewing: false; anonymous_enabled: false; categories: string[]; skills: string[]; } interface FestivalPostInput { kind: FestivalPostKind; title: string; /** Sanitized HTML from the shared WYSIWYG editor. */ content: string; visibility?: 'public' | 'unlisted' | 'private'; category?: string | null; tags?: string[]; skills?: string[]; preferred_skills?: string[]; job_types?: FestivalWorkType[]; company?: string | null; organization_id?: string | null; work_arrangement?: 'remote' | 'onsite' | 'hybrid' | null; experience?: 'any' | 'entry' | 'junior' | 'mid' | 'senior' | 'lead' | null; location?: string | null; availability?: 'immediately' | 'within_30_days' | 'specific_date' | 'flexible' | 'unavailable'; availability_date?: string | null; deadline?: string | null; expires_at?: string | null; compensation_type?: 'negotiable' | 'yearly' | 'monthly' | 'hourly' | 'flat_fee'; compensation_min?: number | null; compensation_max?: number | null; currency?: string | null; portfolio_url?: string | null; application_method?: 'internal' | 'external'; application_url?: string | null; /** UserMedia IDs returned by uploadMedia, NOT Media IDs or clip-library selections. Max 8. */ media_ids?: string[]; public_compensation?: boolean; public_location?: boolean; public_availability?: boolean; public_portfolio?: boolean; } interface FestivalNetworkingFilters { kind?: FestivalPostKind; view?: 'all' | 'mine' | 'saved' | 'hidden' | 'comments'; sort?: 'new' | 'hot' | 'top' | 'discussed' | 'compensation' | 'deadline'; window?: 'today' | 'week' | 'month' | 'festival' | 'all'; q?: string; category?: string; skill?: string; job_type?: FestivalWorkType; arrangement?: 'remote' | 'onsite' | 'hybrid'; experience?: string; location?: string; company?: string; availability?: string; currency?: string; compensation_type?: string; min_compensation?: number; tag?: string; author?: string; has_comments?: boolean; has_portfolio?: boolean; media_type?: 'image' | 'video'; page?: number; per_page?: number; } interface FestivalMediaUpload { id: string; user_media_id: string; media_id: string; url: string; mime_type: string; size: number; title: string; processing_status: 'completed' | 'pending' | 'processing' | 'failed'; } interface FestivalNetworkingProfile { id: string | null; name: string; } interface FestivalNetworkingResponse { data: T; message?: string; meta?: { current_page: number; last_page: number; total?: number; }; has_access?: boolean; can_manage?: boolean; can_moderate?: boolean; user?: FestivalNetworkingProfile | null; show?: { id: string; name: string; }; audit?: Array>; } interface FestivalPost { id: string; game_show_id: string; parent_id: string | null; kind: FestivalPostKind | 'comment'; title: string; content: string; state: FestivalPostState; visibility: 'public' | 'unlisted' | 'private'; details: Partial; author: FestivalNetworkingProfile | null; created_at: string; updated_at: string; score: number; my_vote: -1 | 0 | 1; saved: boolean; is_owner: boolean; can_edit: boolean; comment_count: number; media: Array<{ id: string; user_media_id?: string | null; url: string; mime_type: string; title: string | null; }>; my_application?: { id: string; status: FestivalApplicationState; } | null; match?: { score: number; reasons: string[]; missing_required_skills: string[]; disclaimer: string; }; } interface FestivalApplicationInput { message?: string; portfolio?: string[]; } interface FestivalConversation { id: string; festival_application_id: string; can_send: boolean; read_only_reason: string | null; festival_context: { game_show_id: string; post_id: string | null; title: string; kind: FestivalPostKind; application_status: FestivalApplicationState; } | null; users: Array<{ id: string | null; display_name: string; avatar: string | null; }>; messages: Array<{ id: string; thread_id: string; user_id: string | null; message: string; client_message_id: string | null; created_at: string; updated_at: string; user: { id: string | null; display_name: string; avatar: string | null; }; }>; } interface FestivalPreferences { notifications?: boolean; blocked_users?: string[]; blocked_companies?: string[]; } interface FestivalReportInput { reason: 'spam' | 'harassment' | 'hate' | 'sexual_content' | 'scam' | 'job_scam' | 'copyright' | 'malicious_link' | 'misleading' | 'other'; explanation?: string; } /** Festival-scoped discussions, talent, jobs, moderation and new owned media uploads. */ declare class FestivalNetworking { private static request; /** Read enabled tools and the current account's registration/ticket access. */ static settings(id: string, options?: FestivalRequestOptions): AxiosPromise>; /** Organizer-only settings update; admission remains mandatory. */ static updateSettings(id: string, data: Partial): AxiosPromise>; /** Search posts; compensation comparisons require currency and period. */ static listPosts(id: string, params?: FestivalNetworkingFilters, options?: FestivalRequestOptions): AxiosPromise>; /** Create a post with rich HTML and optional newly uploaded UserMedia IDs. */ static createPost(id: string, data: FestivalPostInput): AxiosPromise>; /** Direct links still require admission and content visibility permission. */ static getPost(id: string, post_id: string, options?: FestivalRequestOptions): AxiosPromise>; /** Edit or soft-delete via state; omit media_ids to preserve current attachments. */ static updatePost(id: string, post_id: string, data: Partial & { state?: FestivalPostState; }): AxiosPromise>; /** Paginated direct replies; fetch children to expand a thread. */ static listComments(id: string, post_id: string, params?: { page?: number; }, options?: FestivalRequestOptions): AxiosPromise>; /** Add a rich-text reply, subject to locking and five-level nesting. */ static createComment(id: string, post_id: string, data: { content: string; }): AxiosPromise>; /** Set, replace, or remove a vote/save/hide idempotently. */ static setInteraction(id: string, post_id: string, data: { action: 'vote' | 'saved' | 'hidden'; value: -1 | 0 | 1; }): AxiosPromise>; /** Apply or express interest once; the original listing is snapshotted. */ static apply>(id: string, post_id: string, data: FestivalApplicationInput): AxiosPromise>; /** Discovery matches for the current user's own job/talent listing. */ static matches(id: string, post_id: string, params?: { page?: number; }, options?: FestivalRequestOptions): AxiosPromise>; /** Report suspicious content privately to festival moderators. */ static report(id: string, post_id: string, data: FestivalReportInput): AxiosPromise>; /** Only the applicant and listing owner receive application records. */ static applications>>(id: string, params?: { page?: number; }, options?: FestivalRequestOptions): AxiosPromise>; /** Applicant withdrawal or owner-managed status changes. */ static updateApplication>(id: string, application_id: string, data: { status: Exclude; }): AxiosPromise>; /** Open the application/talent inquiry's private shared-inbox conversation, creating it once for legacy applications. Only the applicant and original listing owner may call this. Use Messages.getThread/sendMessage for subsequent conversation activity. */ static conversation(id: string, application_id: string): AxiosPromise>; /** Moderator-only report queue and audit history. */ static moderation>>(id: string, params?: { page?: number; }, options?: FestivalRequestOptions): AxiosPromise>; /** Moderation remains available even while the board is disabled. */ static moderatePost(id: string, post_id: string, data: { state?: 'active' | 'hidden' | 'locked' | 'deleted' | 'removed'; remove_media?: true; }): AxiosPromise>; /** Resolve, dismiss or begin reviewing a report. */ static resolveReport(id: string, report_id: string, data: { status: 'under_review' | 'resolved' | 'dismissed'; }): AxiosPromise>; /** Moderator-only participant restrictions. */ static restrictMember(id: string, user_id: string, data: { banned: boolean; }): AxiosPromise>; /** Current user's privacy and notification preferences. */ static preferences(id: string, options?: FestivalRequestOptions): AxiosPromise>; /** Set notification opt-out and blocked participants/companies. */ static updatePreferences(id: string, data: FestivalPreferences): AxiosPromise>; /** Uploaded festival attachments only; not the gameplay clip library. */ static media>>(id: string, params?: { page?: number; }, options?: FestivalRequestOptions): AxiosPromise>; /** * Upload a new image (10 MB max) or video (100 MB max), using the existing media pipeline. * The response ID is an owned UserMedia ID for createPost/updatePost media_ids. * @param file New file selected by the attendee; supported images exclude SVG. * @param data Which enabled board the upload is for. * @param onUploadProgress Transfer progress; 100% may still require conversion before completion. */ static uploadMedia(id: string, file: File | Blob, data: { kind: FestivalPostKind; }, onUploadProgress?: (event: AxiosProgressEvent) => void, options?: FestivalRequestOptions): AxiosPromise>; /** Organizations the authenticated user is authorized to represent. */ static organizations>(id: string, options?: FestivalRequestOptions): AxiosPromise>; /** Organizer-only aggregate participation metrics. */ static analytics>(id: string, options?: FestivalRequestOptions): AxiosPromise>; } type MicrotransactionEnvironment = 'sandbox' | 'live'; type MicrotransactionProviderName = 'stripe' | 'xsolla'; type MicrotransactionProductType = 'durable' | 'consumable' | 'currency' | 'bundle' | 'pass'; type MicrotransactionCurrency = 'USD' | 'EUR' | 'GBP' | 'CAD' | 'AUD' | 'JPY' | 'BRL' | 'INR' | 'KRW'; type MicrotransactionProductStatus = 'draft' | 'active' | 'archived'; type MicrotransactionPaymentStatus = 'created' | 'action_required' | 'pending' | 'unknown' | 'paid' | 'failed' | 'canceled' | 'refund_pending' | 'partially_refunded' | 'refunded' | 'disputed' | 'quarantined' | 'refund_review'; type MicrotransactionRefundStatus = 'requested' | 'linked' | 'unknown' | 'pending' | 'submitted' | 'succeeded' | 'failed' | 'canceled'; type MicrotransactionDeliveryStatus = 'pending' | 'retrying' | 'processing' | 'acknowledged' | 'failed' | 'superseded'; type MicrotransactionPayoutStatus = 'pending' | 'transferred' | 'bank_paid' | 'bank_pending' | 'bank_failed' | 'transfer_reversed'; type MicrotransactionFulfillmentStatus = 'not_ready' | 'pending' | 'delivered' | 'retrying' | 'failed' | 'revoked' | 'partially_recovered'; type MicrotransactionAbility = 'commerce:read' | 'commerce:write' | 'commerce:finance' | 'commerce:fulfill'; type MicrotransactionErrorCode = 'authentication_required' | 'permission_denied' | 'not_found' | 'not_eligible' | 'quote_expired' | 'already_owned' | 'idempotency_conflict' | 'payment_unknown' | 'rate_limited' | 'invalid_revenue_configuration' | 'fulfillment_pending' | 'provider_unavailable'; /** The backend's JSON envelope; Axios returns this envelope in response.data. */ interface MicrotransactionResponse { data: T; message?: string; success?: boolean; } interface MicrotransactionError { message: string; code?: MicrotransactionErrorCode | string; errors?: Record; } interface MicrotransactionRequestOptions extends Pick { /** Optional short-lived commerce-only player token. Never a shipped developer/title token. */ playerToken?: string; } interface MicrotransactionSessionOptions extends MicrotransactionRequestOptions { /** Required limited checkout capability; sent only in X-Checkout-Token, never a query. */ checkoutToken: string; } interface MicrotransactionEnvironmentFilter { environment?: MicrotransactionEnvironment; } /** Catalog discovery defaults to 200 records per page; absence on page one is not proof a SKU is unused. */ interface MicrotransactionProductListFilters { page?: number; per_page?: number; status?: MicrotransactionProductStatus; /** Exact SKU, not a substring search. */ sku?: string; } /** Administrative lists default to page 1 / 25 records and are scoped to the authorized title. */ interface MicrotransactionManagementListFilters extends MicrotransactionEnvironmentFilter { page?: number; per_page?: number; status?: string; } interface MicrotransactionOrderListFilters extends MicrotransactionManagementListFilters { product_id?: string; status?: MicrotransactionPaymentStatus; payment_status?: MicrotransactionPaymentStatus; } interface MicrotransactionRelatedListFilters extends MicrotransactionManagementListFilters { order_id?: string; } interface MicrotransactionRefundListFilters extends MicrotransactionRelatedListFilters { status?: MicrotransactionRefundStatus; } interface MicrotransactionDeliveryListFilters extends MicrotransactionRelatedListFilters { status?: MicrotransactionDeliveryStatus; } interface MicrotransactionPayoutListFilters extends MicrotransactionRelatedListFilters { status?: MicrotransactionPayoutStatus; } /** @deprecated Optional compatibility field only; no confirmation or human-approval gate is enforced. */ interface MicrotransactionLegacyConfirmation { confirm?: boolean; } /** Self-only purchase-history filters. Identity comes from authentication, never a user_id argument. */ interface MicrotransactionMyPurchasesFilters extends MicrotransactionEnvironmentFilter { /** Page number, integer 1–10000. Defaults to 1; ordering is created_at DESC, id DESC. */ page?: number; /** Integer 1–100. Defaults to 20. No cursor or product filter is supported. */ per_page?: number; } interface MicrotransactionCatalogFilter extends MicrotransactionEnvironmentFilter { country?: string; currency?: string; channel?: 'web'; } interface MicrotransactionMedia { id: string; url: string; mime_type: string; poster?: string | null; } interface MicrotransactionBranding { display_name?: string | null; accent_color?: string | null; /** Existing authorized title Media ID, not an external URL or UserMedia ID. */ logo_media_id?: string | null; /** Resolved public Media returned for display; not a writable branding input. */ logo_media?: MicrotransactionMedia | null; } interface MicrotransactionPrice { /** Uppercase ISO 4217 currency. Not all currencies have two decimal places. */ currency: MicrotransactionCurrency; /** Uppercase ISO 3166-1 alpha-2 buyer country, or '*' default. */ country: string; /** Integer 1–100000 in currency minor units: USD 499 means $4.99; JPY 499 means ¥499. Provider minima apply separately. */ amount_minor: number; } interface MicrotransactionGrant { /** Stable per-title inventory key; never a client-supplied grant at checkout. */ key: string; quantity: number; kind: 'durable' | 'consumable' | 'pass'; /** Required for pass grants; 60–31536000 seconds. Durable quantity must be one. */ duration_seconds?: number | null; } interface MicrotransactionProductInput { sku: string; name: string; description?: string; type: MicrotransactionProductType; status?: MicrotransactionProductStatus; /** Attach IDs from the existing title-authorized Media pipeline. No arbitrary media URLs. */ media_ids?: string[]; prices: MicrotransactionPrice[]; grants: MicrotransactionGrant[]; localizations?: Record; starts_at?: string | null; ends_at?: string | null; max_per_order?: number; /** @deprecated Ignored compatibility field. Title authorization and immutable-data validation remain required. */ confirm?: boolean; } interface MicrotransactionProduct extends Omit { id: string; title_id: string; status: MicrotransactionProductStatus; version: number; media_ids: string[]; media: MicrotransactionMedia[]; created_at: string; updated_at: string; } /** Read-only collection facts, not tax exemption or a determination of tax owed. */ interface MicrotransactionTaxCollection { /** Configured intent stays automatic during a known pending-setup fallback. */ requested_mode: 'automatic' | 'disabled'; /** Pending setup may disable collection for a NEW order; unknown facts are null and block new automatic checkout. */ effective_mode: 'automatic' | 'disabled' | null; status: string; missing_fields: string[]; fallback_reason: 'stripe_tax_setup_incomplete' | null; warnings: string[]; } interface MicrotransactionProvider { provider: MicrotransactionProviderName; environment: MicrotransactionEnvironment; configured: boolean; /** Actual external provider/account capability, not a manual approval flag. */ available: boolean; enabled: boolean; priority: number; countries: string[]; currencies: string[]; minimum_amounts: Record; channels: string[]; payment_methods: string[]; configuration: MicrotransactionProviderConfiguration; account: { id: string; country: string | null; charges_enabled: boolean; payouts_enabled: boolean; requirements_due: string[]; merchant_name?: string | null; } | null; /** The game's payout target. Do not substitute the platform processing account's payouts_enabled. */ payout_account: { source: 'platform' | 'user' | 'community' | 'managed'; id: string | null; available: boolean; country: string | null; transfers_active: boolean; payouts_enabled: boolean; requirements_due: string[]; reasons: string[]; }; tax: { status: string; missing_fields: string[]; }; /** Current route facts only. Never use these to reinterpret an existing order's frozen decision. */ tax_collection?: MicrotransactionTaxCollection | null; /** Non-blocking collection warnings, separate from reasons and payout_account availability. */ warnings?: string[]; reasons: string[]; checked_at: string | null; revision?: number; } interface MicrotransactionProviderSku { /** Provider SKU, 1–100 characters. */ sku: string; currency: MicrotransactionCurrency; amount_minor: number; } interface MicrotransactionProviderConfiguration { /** Requested configuration. Explicit disabled is sandbox-only; pending-setup fallback does not change live configuration to disabled. */ tax_mode: 'automatic' | 'disabled'; /** Stripe tax code txcd_ followed by exactly eight digits. */ tax_code: string | null; payout_source: 'platform' | 'user' | 'community' | 'managed'; /** Xsolla public project ID, 1–20 decimal digits. */ project_id: string | null; /** Maximum 200 mappings. */ sku_map: Record; } /** Developer preferences and an optional new owned Xsolla webhook secret only; never platform credentials, arbitrary payees, or availability facts. */ interface MicrotransactionProviderInput extends Partial, MicrotransactionLegacyConfirmation { environment: MicrotransactionEnvironment; enabled?: boolean; priority?: number; countries?: string[]; currencies?: MicrotransactionCurrency[]; minimum_amounts?: Record; /** Write-only NEW owned Xsolla project secret, 16–512 chars, finance scope. Never a platform API key or MCP token; never returned/logged or put in game code. Existing platform/historical bindings cannot be overwritten. */ webhook_secret?: string; } interface MicrotransactionProviderOnboardingInput extends MicrotransactionLegacyConfirmation { environment: MicrotransactionEnvironment; country: string; /** Stable caller-created key. Reuse with identical input after uncertain retries; never generate inside a retry. */ idempotency_key: string; } interface MicrotransactionProviderOnboarding { title_id: string; provider: 'stripe'; environment: MicrotransactionEnvironment; account_id: string; /** Single-use provider onboarding URL on connect.stripe.com; do not log or persist it. */ onboarding_url: string; expires_at: string; status: 'requires_provider_onboarding'; reused: boolean; } interface MicrotransactionDeliverySettings { title_id: string; environment: MicrotransactionEnvironment; enabled: boolean; url: string | null; signature_algorithm: 'ed25519' | 'hmac-sha256'; /** Public verification material only. The private signing key never leaves the server. */ verification_public_key: string | null; key_id: string | null; revision: number; configured: boolean; } interface MicrotransactionDeliverySettingsInput extends MicrotransactionLegacyConfirmation { environment: MicrotransactionEnvironment; enabled?: boolean; url?: string | null; } interface MicrotransactionDelivery { id: string; order_id: string; event_type: string; status: MicrotransactionDeliveryStatus; attempts: number; next_attempt_at: string | null; acknowledged_at: string | null; created_at: string; updated_at: string; } /** Replay/acknowledgement return only this safe subset, not the list's timestamps. */ type MicrotransactionDeliveryResult = Pick; interface MicrotransactionRefundRecord { id: string; order_id: string; status: MicrotransactionRefundStatus; amount_minor: number; reason: string; idempotency_key: string | null; record_type: 'request' | 'execution'; execution_refund_id: string | null; execution_status: MicrotransactionRefundStatus | null; request_resolution: 'linked_to_execution' | 'not_executed' | null; order_refunded_minor: number | null; failure_code: string | null; created_at: string; updated_at: string; } interface MicrotransactionPayout { id: string; order_id: string; status: MicrotransactionPayoutStatus; amount_minor: number; provider_reference: string | null; created_at: string; updated_at: string; } interface MicrotransactionRefundInput extends MicrotransactionLegacyConfirmation { reason: string; amount_minor?: number; /** REQUIRED stable operation key, scoped to title/order. Reuse identical input on retry; changes conflict. */ idempotency_key: string; } interface MicrotransactionReadiness { status: 'disabled' | 'draft' | 'sandbox' | 'ready' | 'live' | 'degraded' | 'suspended'; /** Configuration readiness only; not proof of payment, delivery, claim or browser 3DS. */ ready: boolean; /** Optional on older backends; retains the same configuration meaning as ready. */ configuration_ready?: boolean; /** Stored sandbox paid + fulfilled + claimed evidence. Absent means unknown; not browser/3DS certification. */ integration_verified?: boolean; blockers: string[]; providers: MicrotransactionProvider[]; commission_basis_points: 1200; } interface MicrotransactionFramePolicy { frame_ancestors: string[]; expires_at: string | null; } interface MicrotransactionSettingsInput { enabled?: boolean; environment?: MicrotransactionEnvironment; /** Actual title-wide ad-delivery policy, distinct from ad revenue sharing. */ ads_enabled?: boolean; fulfillment_mode?: 'glitch' | 'server'; allowed_origins?: string[]; countries?: string[]; currencies?: MicrotransactionCurrency[]; branding?: Omit; support_email?: string | null; /** @deprecated Legacy delivery alias requiring BOTH commerce:write and commerce:fulfill; prefer updateDeliverySettings/getDeliverySettings. */ webhook_url?: string | null; /** @deprecated Ignored compatibility field. Authorized title editors save directly; actual provider/sales restrictions remain. */ confirm?: boolean; } interface MicrotransactionSettings extends Omit, 'confirm'> { title_id: string; branding: MicrotransactionBranding; integration_verified: boolean; /** 12% of discounted pre-tax subtotal; no second commission for in-game currency spending. */ commission_basis_points: 1200; fee_policy: 'developer_pays_provider_costs'; readiness: MicrotransactionReadiness; } interface MicrotransactionCatalog { title: { id: string; name: string; }; branding: MicrotransactionBranding; products: MicrotransactionProduct[]; environment: MicrotransactionEnvironment; available: boolean; blockers: string[]; } interface MicrotransactionPurchaseInput { product_id: string; quantity: number; country: string; currency: string; environment: MicrotransactionEnvironment; channel: 'web'; } interface MicrotransactionCheckoutSessionInput extends MicrotransactionPurchaseInput { /** Exact game origin previously allowlisted by its owner. */ return_origin: string; /** Random per-purchase state; retain locally and compare before claiming a handoff. */ nonce: string; } interface MicrotransactionQuote extends Omit { id: string; product_version: number; subtotal_minor: number; tax_minor: number; total_minor: number; commission_minor: number; commission_basis_points: 1200; expires_at: string; } interface MicrotransactionEntitlement { key: string; kind: 'durable' | 'consumable' | 'pass'; balance: number; environment: MicrotransactionEnvironment; updated_at: string; expires_at?: string | null; } interface MicrotransactionOrder { id: string; /** Opaque owning Glitch player ID; no email or billing identity is exposed. */ player_id?: string; checkout_session_id: string | null; title_id: string; product_id: string; quantity: number; environment: MicrotransactionEnvironment; currency: string; country: string; subtotal_minor: number; tax_minor: number; total_minor: number; commission_minor: number; /** Null until actual costs are reconciled; never confuse an estimate with a payout. */ provider_fee_minor: number | null; payment_status: MicrotransactionPaymentStatus; fulfillment_status: MicrotransactionFulfillmentStatus; provider: 'stripe' | 'xsolla' | null; created_at: string; paid_at: string | null; refunded_minor: number; items: MicrotransactionGrant[]; /** Frozen decision, also returned inside checkout/session.order. Null/absent for legacy orders; never infer from current provider facts. Warnings do not imply zero tax owed. */ tax_collection?: MicrotransactionTaxCollection | null; entitlements?: MicrotransactionEntitlement[]; } interface MicrotransactionOrderDetail extends MicrotransactionOrder { /** Optional, permission-scoped management relationships. Omission is not proof no records exist. */ refunds?: Array & Partial>; deliveries?: MicrotransactionDelivery[]; payouts?: Array & Partial>; financial_details_included?: boolean; } type MicrotransactionGrantUsageStatus = 'unused' | 'partially_used' | 'used_up' | 'owned' | 'expired' | 'revoked' | 'not_delivered' | 'unavailable'; /** One purchase's server-calculated grant lot, not the player's aggregate inventory balance. */ interface MicrotransactionGrantUsage { /** Null when the captured purchase has not produced an actual grant lot. */ grant_id: string | null; key: string; kind: 'durable' | 'consumable' | 'pass'; /** Promised units from the frozen grant quantity multiplied by order quantity, not money. */ purchased_quantity: number; /** Actual granted units; zero when no lot exists, even if promised units are positive. */ granted_quantity: number; /** Alias of actual granted_quantity, not the promised purchased_quantity. */ acquired_quantity: number; /** Units remaining in the lot; expired/unavailable lots may still have raw remaining units. */ remaining_quantity: number; /** acquired_quantity - remaining_quantity - revoked_quantity. Includes unrecoverable consumed units. */ consumed_quantity: number; /** Units actually recovered/revoked by a refund; not gameplay consumption. */ revoked_quantity: number; /** Bounded revoked_quantity + unrecoverable_quantity. This overlaps consumed quantity; do not subtract twice. */ refunded_quantity: number; /** Refunded units that could not be recovered because already consumed. Overlaps consumed_quantity. */ unrecoverable_quantity: number; expires_at: string | null; expired: boolean; /** Server-calculated usable units after expiry and payment/fulfillment restrictions. */ usable_quantity: number; /** Consumable usage only. Durable/pass grants return null; ownership is not proof of gameplay use. */ is_used: boolean | null; usage_status: MicrotransactionGrantUsageStatus; } interface MicrotransactionPlayerPurchase extends MicrotransactionOrder { /** Always present on authenticated self-history, unlike older generic order DTOs. */ player_id: string; /** Product snapshot for this purchase, not a replacement for the current catalog. */ product: { id: string; sku: string | null; name: string | null; type: MicrotransactionProductType | null; version: number | null; }; grant_usage: MicrotransactionGrantUsage[]; has_consumed_grants: boolean; has_usable_grants: boolean; } interface MicrotransactionPurchasePagination { page: number; per_page: number; total: number; last_page: number; has_more_pages: boolean; } /** Captured own-player purchases, including later refunds/disputes/quarantine; unpaid attempts are excluded. */ interface MicrotransactionMyPurchases { title_id: string; player_id: string; environment: MicrotransactionEnvironment; purchases: MicrotransactionPlayerPurchase[]; pagination: MicrotransactionPurchasePagination; } interface MicrotransactionCreatedCheckoutSession { id: string; checkout_session_id: string; intent: 'purchase' | 'restore'; /** Short-lived capability: never log, send to analytics, or put in a URL query. */ session_token: string; hosted_url: string; expires_at: string; status: 'authentication_required' | 'ready'; nonce: string; } interface MicrotransactionCheckoutSession { id: string; checkout_session_id: string; title_id: string; intent: 'purchase' | 'restore'; title: { id: string; name: string; }; branding: MicrotransactionBranding; product: MicrotransactionProduct | null; quantity: number; country: string; currency: string; environment: MicrotransactionEnvironment; status: string; expires_at: string; authenticated: boolean; order: MicrotransactionOrder | null; return_origin: string; nonce: string; support_email: string | null; } interface MicrotransactionCheckoutInput { /** UUID retained for retries of the same purchase, never reused for different goods. */ idempotency_key: string; accept_terms: true; } interface MicrotransactionCheckoutResult { order: MicrotransactionOrder; checkout_url: string | null; status: MicrotransactionPaymentStatus; provider: 'stripe' | 'xsolla'; quote: MicrotransactionQuote; /** Provider's limited embedded-checkout secret if this route supports embedded checkout. */ client_secret?: string | null; /** Public provider key only. Never a Stripe secret key. */ publishable_key?: string | null; ui_mode: 'embedded' | 'xsolla'; } interface MicrotransactionHandoff { event: { type: 'glitch.microtransaction.updated'; version: 1; title_id: string; checkout_session_id: string; order_id: string; nonce: string; /** One-time claim only; never an account JWT. */ claim_code: string; }; target_origin: string; expires_at: string; } interface MicrotransactionHandoffClaimInput { claim_code: string; nonce: string; return_origin: string; checkout_session_id: string; } interface MicrotransactionHandoffClaim { title_id: string; checkout_session_id: string; order_id: string; player_id: string; entitlements: MicrotransactionEntitlement[]; /** 15-minute title/player/environment-scoped token, stored in memory only. */ player_token: string; expires_at: string; } interface MicrotransactionConsumeInput { key: string; quantity: number; action_id: string; environment: MicrotransactionEnvironment; } interface MicrotransactionRefund { refund_id: string; status: MicrotransactionRefundStatus; order_id: string; idempotency_key: string; failure_code: string | null; refund_allocation?: 'pro_rata_all_grants'; } interface MicrotransactionRefundRequest { id: string; order_id: string; status: 'requested'; } interface MicrotransactionEarnings { currency_balances: Array<{ currency: string; pending_minor: number; available_minor: number; paid_minor: number; commission_minor: number; provider_fees_minor: number; /** Transfer to a connected provider balance is NOT a confirmed bank payout. */ transferred_minor?: number; bank_payout_status?: 'provider_managed_not_reconciled'; }>; payouts_enabled: boolean; reserve_days?: number; } type MicrotransactionOperation = 'settings.get' | 'settings.update' | 'products.list' | 'products.create' | 'products.update' | 'products.archive' | 'providers.list' | 'providers.update' | 'providers.refresh' | 'providers.onboarding' | 'readiness.get' | 'orders.list' | 'orders.get' | 'orders.reconcile' | 'earnings.get' | 'refunds.list' | 'refunds.get' | 'refunds.create' | 'refunds.request' | 'refunds.reconcile' | 'delivery.settings.get' | 'delivery.settings.update' | 'deliveries.list' | 'deliveries.replay' | 'deliveries.acknowledge' | 'payouts.list' | 'integration.get' | 'integration.verify'; interface MicrotransactionOperationCapability { operation: MicrotransactionOperation; description: string; ability: MicrotransactionAbility; input_schema: Record; http_method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; mutates: boolean; requires_confirmation: false; requires_human_approval: false; examples: Array>; output_description: string; } interface MicrotransactionCapabilities { schema_version: number; title_id: string; operations: MicrotransactionOperationCapability[]; [key: string]: unknown; } /** * Provider-neutral, title-scoped commerce. Guest games configure only the API * base URL, never global account/admin auth. Hosted account pages use their own * user JWT and limited checkout capability; playerToken overrides auth per request. Install/title * tokens cannot authorize money, ownership, refunds, or catalog changes. * * Each result preserves payment versus fulfillment versus settlement. Redirects * and postMessage events only trigger an authoritative refresh. A timeout is * unknown; reconcile the original attempt instead of charging another provider. */ declare class Microtransactions { /** * Upload an image/video through existing Glitch Media processing with title * and actor ownership. Attach its returned Media ID to products/branding. * Does not create a social-library post, scheduler, or new payment product. */ static uploadMedia(title_id: string, media: File | Blob, onUploadProgress?: (event: AxiosProgressEvent) => void, options?: Pick): AxiosPromise>; /** Same title-authorized Media pipeline using the caller's MCP credential and commerce:write ability. */ static mcpUploadMedia(title_id: string, media: File | Blob, onUploadProgress?: (event: AxiosProgressEvent) => void, options?: Pick): AxiosPromise>; /** Admin settings, including immutable 1200bp commission and readiness blockers. */ static settings(title_id: string, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Atomic policy update. Sandbox/off by default. Cannot disable the final working revenue model. */ static updateSettings(title_id: string, data: MicrotransactionSettingsInput, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Read-only current country/provider capability and revenue readiness; never fabricates availability. */ static readiness(title_id: string, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Paginated admin catalog including drafts/archives. Default 200, per_page 1–200/page 1–10000. Use exact sku to resolve uncertain creates. */ static listProducts(title_id: string, params?: MicrotransactionProductListFilters, options?: MicrotransactionRequestOptions): AxiosPromise>; /** @deprecated Compatibility overload for the earlier second-argument request options. */ static listProducts(title_id: string, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Save a catalog product. Prices use integer minor units and attached media must belong to the title. */ static createProduct(title_id: string, data: MicrotransactionProductInput, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Update a product version. Existing order snapshots remain unchanged. */ static updateProduct(title_id: string, product_id: string, data: Partial, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Direct authorized archive. Never deletes financial history or bypasses the last-revenue-model rule. */ static archiveProduct(title_id: string, product_id: string, data?: MicrotransactionLegacyConfirmation, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Actual provider configuration/capability facts; no credentials or manual approval flag. */ static providers(title_id: string, params?: MicrotransactionEnvironmentFilter, options?: MicrotransactionRequestOptions): AxiosPromise>; /** @deprecated Compatibility overload for the earlier second-argument request options. */ static providers(title_id: string, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Direct commerce:finance configuration. Saving preferences does not fabricate external capability; inspect available/reasons. */ static updateProvider(title_id: string, provider: MicrotransactionProviderName, data: MicrotransactionProviderInput, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Refresh authenticated external provider facts. May update cached state; never creates a payment or invents eligibility. */ static refreshProvider(title_id: string, provider: MicrotransactionProviderName, data: { environment: MicrotransactionEnvironment; }, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Start/reuse owned Stripe Connect onboarding with one stable key. Provider KYC is factual setup, not a Glitch approval workflow. */ static createProviderOnboarding(title_id: string, data: MicrotransactionProviderOnboardingInput, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Read title/environment delivery settings and the Ed25519 PUBLIC verification key. */ static getDeliverySettings(title_id: string, params?: MicrotransactionEnvironmentFilter, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Direct commerce:fulfill setup. Private/metadata network targets and private-key inputs remain forbidden. */ static updateDeliverySettings(title_id: string, data: MicrotransactionDeliverySettingsInput, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Discover safe event IDs/statuses before replay or acknowledge. Page 1–10000, per_page 1–100, default 25. */ static listDeliveries(title_id: string, params?: MicrotransactionDeliveryListFilters, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Financially scoped refund operation discovery; pending/unknown is not completed. */ static listRefunds(title_id: string, params?: MicrotransactionRefundListFilters, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Inspect one same-title refund operation. */ static getRefund(title_id: string, refund_id: string, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Query/retry the original persisted refund with its existing identity, never generate a new refund key. */ static reconcileRefund(title_id: string, refund_id: string, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Discover provider transfer/payout records; transferred funds are not automatically a verified bank payout. */ static listPayouts(title_id: string, params?: MicrotransactionPayoutListFilters, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Admin read of separate-currency balances; pending is not withdrawable revenue. */ static earnings(title_id: string, params?: MicrotransactionEnvironmentFilter, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Admin paginated redacted orders. Page 1–10000/per_page 1–100 (default 25); own-player history is separate. */ static listOrders(title_id: string, params?: MicrotransactionOrderListFilters, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Owner JWT/scoped player token or title admin. An arbitrary order UUID grants no access. */ static getOrder(title_id: string, order_id: string, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Financially scoped original-provider reconciliation. Does not reroute or start a different purchase. */ static reconcileOrder(title_id: string, order_id: string, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Direct commerce:finance refund. REQUIRED stable idempotency_key; omission is an error, never auto-filled. Same-key changed input conflicts. */ static refundOrder(title_id: string, order_id: string, data: MicrotransactionRefundInput, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Replay the same immutable event. Receiver must deduplicate event_id. This cannot mint goods. */ static replayDelivery(title_id: string, delivery_id: string, data?: MicrotransactionLegacyConfirmation, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Guest catalog on the exact approved game Origin. Sandbox requires enabled sandbox settings; the backend enforces environment policy. */ static catalog(title_id: string, params?: MicrotransactionCatalogFilter, options?: MicrotransactionRequestOptions): AxiosPromise>; /** User-authenticated quote. Clients select product/quantity, never monetary values or seller accounts. */ static createQuote(title_id: string, data: MicrotransactionPurchaseInput, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Guest opening only: browser Origin must equal approved return_origin. Inherits configured global auth; use an isolated credential-free game context. Hosted UI authenticates before payment. */ static createCheckoutSession(title_id: string, data: MicrotransactionCheckoutSessionInput, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Guest entry to hosted recovery, not inventory access. Exact approved Origin/return_origin required. Owning-account bind remains mandatory, including when commerce is off. Never install an account JWT in the game. */ static createRestoreSession(title_id: string, data: { return_origin: string; nonce: string; environment: MicrotransactionEnvironment; }, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Read the session using its limited capability. Cannot mutate user identity or declare payment. */ static getCheckoutSession(title_id: string, session_id: string, options: MicrotransactionSessionOptions): AxiosPromise>; /** Anonymous, read-only embedding policy: server-approved frame ancestors only, no player/session capability data. */ static getCheckoutFramePolicy(title_id: string, session_id: string, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Anonymous title-wide approved embedding policy for trusted hosted account pages; no player data. */ static getFramePolicy(title_id: string, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Bind once to the existing authenticated account. Cannot reassign another player's purchase. */ static authenticateCheckoutSession(title_id: string, session_id: string, options: MicrotransactionSessionOptions): AxiosPromise>; /** Bound-user JWT + session capability. Reuse the idempotency key after a network timeout. */ static checkout(title_id: string, session_id: string, data: MicrotransactionCheckoutInput, options: MicrotransactionSessionOptions): AxiosPromise>; /** Query original provider; never creates another charge. Pending/unknown remains non-terminal. */ static reconcileCheckoutSession(title_id: string, session_id: string, options: MicrotransactionSessionOptions): AxiosPromise>; /** Hosted checkout only. Server issues an expiring one-time game handoff after verified fulfillment. */ static createHandoff(title_id: string, session_id: string, options: MicrotransactionSessionOptions): AxiosPromise>; /** Game exchanges a verified popup code. Browser Origin must match return_origin; code is consumed once. */ static claimHandoff(title_id: string, data: MicrotransactionHandoffClaimInput, options?: MicrotransactionRequestOptions): AxiosPromise>; /** * Authenticated hosted Glitch account only: restore a previous purchase into a * NEW nonce-bound session/handoff after the game's 15-minute token expires or * storage is cleared. Does not create another payment. Return to the game via * verified source/origin and a new bridge bound to event.checkout_session_id. */ static restoreHandoff(title_id: string, data: { order_id: string; return_origin: string; nonce: string; }, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Record integration proof from a genuinely paid, fulfilled sandbox order with a claimed game handoff. */ static verifyIntegration(title_id: string, data: { order_id: string; confirm?: boolean; }, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Restore authoritative durable ownership/current consumable balances, never mutable cloud-save balances. */ static listEntitlements(title_id: string, params?: MicrotransactionEnvironmentFilter, options?: MicrotransactionRequestOptions): AxiosPromise>; /** * Optional self-only purchase/usage history. A user JWT selects that user; a * scoped playerToken selects its bound title/player/environment and requires * the exact approved game Origin. No MCP/install token or caller-selected * user_id/player_id is accepted. JWT environment defaults to live; scoped * tokens default to their bound environment. Admin listOrders stays separate. * * Read response.data.data.purchases and .pagination. Use grant_usage for lot * consumption/refund/expiry status, listEntitlements for current aggregate * inventory, and consume for explicit gameplay spending. History never grants * inventory and durable/pass is_used is null rather than a guessed boolean. */ static listMyPurchases(title_id: string, filters?: MicrotransactionMyPurchasesFilters, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Atomic tracked spending. Reuse action_id for retries; a new gameplay action needs a new ID. */ static consume(title_id: string, data: MicrotransactionConsumeInput, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Owning user asks support to review a refund. This does not execute payment reversal. */ static requestRefund(title_id: string, data: { order_id: string; reason: string; }, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Trusted title server with commerce:fulfill or admin JWT acknowledges the immutable event. */ static acknowledgeDelivery(title_id: string, delivery_id: string, data: { event_id: string; }, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Title MCP token, never a runtime install token. Describes arguments, abilities, mutation semantics and provider facts. */ static mcpCapabilities(title_id: string, options?: MicrotransactionRequestOptions): AxiosPromise>; /** Execute a discovered authorized operation directly. Legacy confirm is ignored and not forwarded. */ static mcpOperation>(title_id: string, operation: MicrotransactionOperation, data: { arguments: Record; confirm?: boolean; }, options?: MicrotransactionRequestOptions): AxiosPromise>; private static call; } type PreorderFulfillmentType = 'glitch_license' | 'platform_key'; type PreorderOfferStatus = 'draft' | 'active' | 'paused' | 'ended' | 'archived'; type PreorderDerivedState = 'draft' | 'available' | 'scheduled' | 'sold_out' | 'paused' | 'ended' | 'released' | 'archived'; type PreorderPaymentStatus = 'created' | 'requires_action' | 'processing' | 'paid' | 'failed' | 'canceled' | 'refunded' | 'disputed' | 'unknown'; type PreorderFulfillmentStatus = 'waiting_for_release' | 'ready' | 'processing' | 'fulfilled' | 'blocked_missing_build' | 'blocked_missing_key' | 'canceled' | 'failed'; interface PreorderRequestOptions extends Pick { } interface PreorderPrice { country: string; currency: string; amount_minor: number; } interface PreorderInventory { available: number; reserved: number; delivered: number; retired: number; total: number; } interface PreorderOfferInput { sku: string; platform_code: string; platform_label: string; fulfillment_type: PreorderFulfillmentType; status?: PreorderOfferStatus; sales_start_at?: string | null; sales_end_at?: string | null; release_at: string; limit_total?: number | null; max_per_user?: number; custom_message?: string | null; post_purchase_url?: string | null; redeem_url?: string | null; prices: PreorderPrice[]; } interface PreorderOffer extends Omit { id: string; title_id: string; status: PreorderOfferStatus; state: PreorderDerivedState; sold: number; reserved_or_paid: number; remaining: number | null; revision: number; inventory?: PreorderInventory; owned_count?: number; } interface PreorderSettings { enabled: boolean; timezone: string; readiness?: PreorderReadiness; } interface PreorderCatalog { enabled: boolean; timezone?: string; offers: PreorderOffer[]; } interface PreorderPurchaseInput { country?: string; currency?: string; idempotency_key: string; payment_method_id?: string; payment_intent_id?: string; } interface PreorderOrder { id: string; title_id: string; offer_id: string; user_id?: string; platform_code: string; platform_label: string; fulfillment_type: PreorderFulfillmentType; payment_status: PreorderPaymentStatus; fulfillment_status: PreorderFulfillmentStatus; currency: string; subtotal_minor: number; tax_minor: number; total_minor: number; promised_release_at: string; current_release_at: string; paid_at?: string; fulfilled_at?: string; custom_message?: string; post_purchase_url?: string; redeem_url?: string; platform_key?: string; key_masked_suffix?: string; purchase_email?: string; provider_reference?: string; commission_minor?: number; developer_share_minor?: number; requires_action?: boolean; client_secret?: string; payment_intent_id?: string; } interface PreorderReadinessIssue { offer_id: string; code: string; [key: string]: unknown; } interface PreorderReadiness { enabled: boolean; ready: boolean; blockers: PreorderReadinessIssue[]; warnings: PreorderReadinessIssue[]; } interface PreorderAdminOrderFilters { offer_id?: string; payment_status?: string; fulfillment_status?: string; per_page?: number; page?: number; } type PreorderAdminOrderAction = 'refund' | 'reconcile' | 'fulfill' | 'resend_receipt' | 'resend_access'; declare class Preorders { static catalog(title_id: string, options?: PreorderRequestOptions): AxiosPromise>; static purchase(title_id: string, offer_id: string, data: PreorderPurchaseInput, options?: PreorderRequestOptions): AxiosPromise>; static myOrders(title_id: string, options?: PreorderRequestOptions): AxiosPromise>; static order(title_id: string, order_id: string, options?: PreorderRequestOptions): AxiosPromise>; static refundMine(title_id: string, order_id: string, options?: PreorderRequestOptions): AxiosPromise>; static resendMine(title_id: string, order_id: string, options?: PreorderRequestOptions): AxiosPromise>; static settings(title_id: string, options?: PreorderRequestOptions): AxiosPromise>; static updateSettings(title_id: string, data: Partial>, options?: PreorderRequestOptions): AxiosPromise>; static offers(title_id: string, options?: PreorderRequestOptions): AxiosPromise>; static offer(title_id: string, offer_id: string, options?: PreorderRequestOptions): AxiosPromise>; static createOffer(title_id: string, data: PreorderOfferInput, options?: PreorderRequestOptions): AxiosPromise>; static updateOffer(title_id: string, offer_id: string, data: PreorderOfferInput, options?: PreorderRequestOptions): AxiosPromise>; static activateOffer(title_id: string, offer_id: string, options?: PreorderRequestOptions): AxiosPromise>; static pauseOffer(title_id: string, offer_id: string, options?: PreorderRequestOptions): AxiosPromise>; static archiveOffer(title_id: string, offer_id: string, options?: PreorderRequestOptions): AxiosPromise>; static inventory(title_id: string, offer_id: string, options?: PreorderRequestOptions): AxiosPromise>; static importKeys(title_id: string, offer_id: string, keys: string[], options?: PreorderRequestOptions): AxiosPromise>; static importKeyFile(title_id: string, offer_id: string, file: File | Blob): AxiosPromise>; static retireKey(title_id: string, offer_id: string, key_id: string, reason: string, options?: PreorderRequestOptions): AxiosPromise>; static adminOrders(title_id: string, filters?: PreorderAdminOrderFilters, options?: PreorderRequestOptions): AxiosPromise; }>>; static readiness(title_id: string, options?: PreorderRequestOptions): AxiosPromise>; static adminOrderAction(title_id: string, order_id: string, action: PreorderAdminOrderAction, options?: PreorderRequestOptions): AxiosPromise>; static mcpCapabilities(title_id: string, options?: PreorderRequestOptions): AxiosPromise>; static mcpOperation(title_id: string, operation: string, argumentsData?: Record, options?: PreorderRequestOptions): AxiosPromise>; } /** A one-time notification, never a receipt or authorization to grant goods. */ interface MicrotransactionPurchaseMessage { type: 'glitch.microtransaction.updated'; version: 1; title_id: string; checkout_session_id: string; order_id: string; /** Cryptographically random value bound to the checkout session at creation. */ nonce: string; /** Server-issued one-time code; not an account or player bearer token. */ claim_code: string; } /** Exact authoritative /handoffs/claim response, not the hosted session DTO. */ type MicrotransactionVerifiedSession = MicrotransactionHandoffClaim; interface MicrotransactionBridgeOptions { titleId: string; checkoutSessionId: string; /** Exact trusted Glitch checkout origin, with no path, wildcard, or credentials. */ checkoutOrigin: string; /** The actual Window returned by window.open or the checkout iframe.contentWindow. */ checkoutWindow: Window; /** At least 128 bits of randomness; use createMicrotransactionNonce(). */ nonce: string; /** * Exchange message.claim_code at Glitch using claimHandoff(titleId, * {claim_code, nonce, return_origin: window.location.origin, * checkout_session_id}). Return response.data.data, the actual claim DTO. * The message has already passed source/origin/nonce checks but is still NOT * proof of payment. The server validates and consumes the one-time code. * Never exchange a site-wide login token with the game or put credentials in * postMessage, analytics, logs, or query strings. */ verify: (message: MicrotransactionPurchaseMessage) => Promise; /** * Restore using the previously verified scoped token plus getOrder and * listEntitlements. Return the claim identity/token with current inventory. * Never redeem the code again. When its token expires, return the player to * the authenticated hosted flow to obtain a fresh scoped handoff. */ refresh?: (previous: T) => Promise; /** Refresh display/inventory from the verified result. Make local effects idempotent. */ onVerified: (result: T) => void | Promise; /** A failed refresh is not a failed payment. Keep the same session and retry. */ onError?: (error: unknown) => void; /** Explicit local development only; production checkout must use HTTPS. */ allowLocalDevelopment?: boolean; /** Defaults to window. Useful for browser integration tests. */ eventTarget?: Pick; } /** Restore authenticates an existing receipt in Glitch and creates a new session. */ interface MicrotransactionRestoreBridgeOptions extends Omit, 'checkoutSessionId'> { /** Previously verified receipt/order ID. This, not the old expired session ID, is pinned. */ orderId: string; } interface MicrotransactionBridge { /** * Refresh only after a successful claim, using options.refresh and its scoped * token. Concurrent refreshes share one request. A lost first-claim response * requires a fresh handoff from the authenticated hosted page, not code replay * or a new payment. No automatic polling or token refresh is performed. */ refresh(): Promise; /** Remove the listener. In-flight results cannot call onVerified after disposal. */ dispose(): void; } /** Generate a 256-bit browser nonce. Fails closed without secure Web Crypto. */ declare function createMicrotransactionNonce(): string; /** * Listen for Glitch-hosted, game-branded checkout changes with strict origin, * source, title, session, and nonce binding. Message data cannot grant an item. * The caller always verifies the session at Glitch before updating inventory. * * Prefer openMicrotransactionOverlay with the exact server-returned URL. The * game stays mounted; no top-level navigation fallback is permitted. If an * embedded flow is unavailable, show retry/close and preserve the game state. * refresh() requires an already verified claim. Keep * secrets in memory/session storage or a URL fragment, never query parameters. * Dispose on game unmount/account change. Reconnect restores ownership through * the authenticated entitlement API, not a saved "purchase successful" flag. */ declare function createMicrotransactionBridge(options: MicrotransactionBridgeOptions): MicrotransactionBridge; /** * Restore-only bridge for /games/:titleId/purchases/restore. Pin the prior order, * fresh nonce, exact Glitch origin and opened window. The hosted signed-in page * creates a NEW session; the server-verified claim must match that new session * and the pinned order. This does not relax purchase-session binding. * * Open the hosted restore page, never request the account JWT in the game. * verify(message) exchanges the code using message.checkout_session_id. All * duplicate-code, expiry and same-player refresh safeguards still apply. */ declare function createMicrotransactionRestoreBridge(options: MicrotransactionRestoreBridgeOptions): MicrotransactionBridge; interface MicrotransactionOverlayOptions { titleId: string; /** Exact configured Glitch HTTPS origin, never taken from postMessage data. */ checkoutOrigin: string; /** Result of createCheckoutSession or createRestoreSession; keep its capability private. */ session: MicrotransactionCreatedCheckoutSession; /** Replace displayed inventory from verified backend data; never increment blindly. */ onVerified: (claim: MicrotransactionHandoffClaim) => void | Promise; /** Pause game input/audio here. The SDK never unmounts or resets the game. */ onOpen?: () => void; /** Resume game input/audio here. Called once, even on escape/error cleanup. */ onClose?: (reason: 'dismissed' | 'completed' | 'unavailable') => void; /** Receipt/status-only update after close; this callback does not authorize item grants. */ onOrderUpdate?: (order: MicrotransactionOrder | null) => void | Promise; onError?: (error: unknown) => void; label?: string; /** Permit HTTP loopback/.test origins only for explicit local development. */ allowLocalDevelopment?: boolean; /** Defaults to the caller's document, including when the game itself is embedded. */ document?: Document; /** Bounded network timeout; defaults to 15 seconds. */ timeoutMs?: number; /** Per-phase iframe load/application-ready timeout; 1–60 seconds, defaults to 20 seconds. */ frameLoadTimeoutMs?: number; } /** Hosted page signals usable checkout/account UI, never payment or inventory authority. */ interface MicrotransactionReadyMessage { type: 'glitch.microtransaction.ready'; version: 1; title_id: string; checkout_session_id: string; nonce: string; } interface MicrotransactionOverlay { readonly element: HTMLDialogElement; readonly iframe: HTMLIFrameElement; /** Refresh verified inventory, or limited receipt status before the first claim. */ refresh(): Promise; /** Removes only this modal, restores focus/input, and refreshes authoritative state. */ close(reason?: 'dismissed' | 'completed' | 'unavailable'): Promise; /** Reload only the same checkout iframe/session. Never starts another payment. */ retry(): void; } /** * Mount Glitch checkout IN the running game. The game document, URL and session * stay intact. Uses a modal dialog with focus restore and a sandboxed payment * iframe. No top-navigation permission or top-level/popup-blocked fallback exists. * Only bank/OAuth verification may open a controlled provider window from inside * the frame. If embedding is unavailable, show retry/close instead of navigating. * * Receipt messages must originate from this exact iframe.contentWindow and pass * origin/title/session/nonce checks. The SDK redeems the one-time claim at Glitch * and uses the returned scoped player token only on commerce requests. Closing * does not cancel an uncertain payment, grant goods, or discard the game state. */ declare function openMicrotransactionOverlay(options: MicrotransactionOverlayOptions): MicrotransactionOverlay; /** Same in-game modal for anonymous-safe restore sessions; never opens a new payment. */ declare function openMicrotransactionRestoreOverlay(options: MicrotransactionOverlayOptions): MicrotransactionOverlay; interface Route { url: string; method: string; } declare class Requests { private static config; private static baseUrl; private static authToken; private static community_id?; constructor(config: Config); static setBaseUrl(url: string): void; static setAuthToken(token: string): void; static setCommunityID(community_id: string | undefined): void; /** * Build an absolute API URL using the currently configured base URL. * * This is useful for browser primitives such as EventSource that need a URL * string instead of an Axios request wrapper. */ static buildUrl(url: string, params?: Record): string; private static request; static get(url: string, params?: Record): AxiosPromise>; static download(url: string, params?: Record): AxiosPromise; static post(url: string, data: any, params?: Record): AxiosPromise>; static put(url: string, data: any, params?: Record): AxiosPromise>; static patch(url: string, data: any, params?: Record): AxiosPromise>; static delete(url: string, params?: Record): AxiosPromise>; static uploadFile(url: string, filename: string, file: File | Blob, data?: any, params?: Record, onUploadProgress?: (progressEvent: AxiosProgressEvent) => void, options?: Pick & { excludeCommunityContext?: boolean; }): AxiosPromise>; static postFormData(url: string, formData: FormData, params?: Record, onUploadProgress?: (progressEvent: AxiosProgressEvent) => void): AxiosPromise>; static uploadBlob(url: string, filename: string, blob: Blob, data?: any, params?: Record, onUploadProgress?: (progressEvent: AxiosProgressEvent) => void): AxiosPromise>; static uploadFileInChunks(file: File, uploadUrl: string, onProgress?: (totalSize: number, amountUploaded: number) => void, data?: any, chunkSize?: number): Promise; static processRoute(route: Route, data?: object, routeReplace?: { [key: string]: any; }, params?: Record, options?: Pick & { excludeCommunityContext?: boolean; }): AxiosPromise>; } declare class Parser { /** * To be used inside a catch close, this function will parse out any JSON in a error response from the api. * * @param error The Error object from the catch clause * * @returns Either returns a JSON object or false. */ static parseJSONFromError(error: Error): object | boolean; } declare class Session { private static _id_key; private static _first_name_key; private static _last_name_key; private static _username_key; private static _email_key; static isLoggedIn(): boolean; static getAuthToken(): string | null; static getID(): string | null; static getFirstName(): string | null; static getLastName(): string | null; static getEmail(): string | null; static hasJoinedCommunity(): boolean; static end(): void; static processAuthentication(data: { token: { access_token: string; expires_in: number; }; id: string; first_name: string; last_name: string; email: string; username: string; }): void; /** * Generate a tracking token for analytics collection * @param titleId The title ID to generate token for * @param secret The secret key (should match server config) * @returns HMAC-SHA256 token * @throws Error if crypto operations fail */ static generateTrackingToken(titleId: string, secret: string): string; } declare class Storage { private static rootDomain; private static data; private static crossDomainKeys; static setRootDomain(rootDomain: string): void; private static getStorageKey; private static shouldShareAcrossSubdomains; static set(key: string, value: any): void; static get(key: string): any; static setAuthToken(token: string | null): void; static getAuthToken(): string | null; static eraseCookie(name: string): void; private static setCookie; private static getCookie; static setTokenExpiry(expiresInSeconds: number): void; static getTokenExpiry(): number | null; static isTokenExpired(): boolean; } declare class Data { static dataURItoBlob(dataURI: string): Blob; static convertToHHMMSS(time: string | undefined): string | undefined; } interface CommunityLabels { [key: string]: string; } declare class LabelManager { private static community; static initialize(community: CommunityLabels): void; private static getLabel; static getUserLabel(plural: boolean, capitalize: boolean): string; static getCompetitionLabel(plural: boolean, capitalize: boolean): string; static getStreamLabel(plural: boolean, capitalize: boolean): string; static getPostLabel(plural: boolean, capitalize: boolean): string; } declare enum Modes { BROADCAST = 0, OBS = 1, RTMP = 2 } declare enum Roles { NONE = 0, SUPER_ADMINISTRATOR = 1, ADMINISTRATOR = 2, MODERATOR = 3, SPEAKER = 4, SUBSCRIBER = 5, BLOCKED = 6, PRODUCER = 7, PARTICIPANT = 8 } declare enum TeamJoinProcess { ANYONE = 1, INVITE = 2, APPROVAL = 3 } declare enum SocialInteractions { LIKE = "\uD83D\uDC4D", LOVE = "\u2764\uFE0F", CARE = "\uD83E\uDD70", HAHA = "\uD83D\uDE02", WOW = "\uD83D\uDE2E", SAD = "\uD83D\uDE1E", CRY = "\uD83D\uDE22", ANGRY = "\uD83D\uDE21", THUMBS_UP = "\uD83D\uDC4D", THUMBS_DOWN = "\uD83D\uDC4E", SMILE = "\uD83D\uDE0A", GRIN = "\uD83D\uDE01", LAUGH = "\uD83D\uDE04", JOY = "\uD83D\uDE03", BLUSH = "\uD83D\uDE0A", SURPRISE = "\uD83D\uDE2E", SHOCK = "\uD83D\uDE32", WOW_FACE = "\uD83D\uDE2F", MIND_BLOWN = "\uD83E\uDD2F", ASTONISHED = "\uD83D\uDE33", CLAP = "\uD83D\uDC4F", PARTY = "\uD83C\uDF89", FIRE = "\uD83D\uDD25", COOL = "\uD83D\uDE0E", OK = "\uD83D\uDC4C", EYES = "\uD83D\uDC40", WINK = "\uD83D\uDE09", TONGUE_OUT = "\uD83D\uDE1C", SILLY = "\uD83E\uDD2A", COFFEE = "\u2615", TEA = "\uD83C\uDF75", BEER = "\uD83C\uDF7A", WINE = "\uD83C\uDF77", COCKTAIL = "\uD83C\uDF78", BALLOON = "\uD83C\uDF88", GIFT = "\uD83C\uDF81", CAMERA = "\uD83D\uDCF7", VIDEO_CAMERA = "\uD83D\uDCF9", MUSIC = "\uD83C\uDFB5", HEADPHONES = "\uD83C\uDFA7", TV = "\uD83D\uDCFA", BOOK = "\uD83D\uDCDA", PEN = "\uD83D\uDD8A\uFE0F", PAPERCLIP = "\uD83D\uDCCE", LOCK = "\uD83D\uDD12", KEY = "\uD83D\uDD11", MAGNIFYING_GLASS = "\uD83D\uDD0D", EARTH_GLOBE = "\uD83C\uDF0D", MAP = "\uD83D\uDDFA\uFE0F", SUN = "\u2600\uFE0F", MOON = "\uD83C\uDF19", STARS = "\uD83C\uDF1F", UMBRELLA = "\u2602\uFE0F", RAINBOW = "\uD83C\uDF08", CLOCK = "\u23F0", HOURGLASS = "\u231B", MONEY_BAG = "\uD83D\uDCB0", SHOPPING_CART = "\uD83D\uDED2", THUMBS_UP_SIGN = "\uD83D\uDC4D\uD83C\uDFFB", THUMBS_DOWN_SIGN = "\uD83D\uDC4E\uD83C\uDFFB", SMILING_FACE_WITH_HALO = "\uD83D\uDE07", NERD_FACE = "\uD83E\uDD13", ROLLING_ON_THE_FLOOR_LAUGHING = "\uD83E\uDD23", UPSIDE_DOWN_FACE = "\uD83D\uDE43", WAVING_HAND = "\uD83D\uDC4B", RAISED_HAND = "\u270B", VICTORY_HAND = "\u270C\uFE0F", FOLDED_HANDS = "\uD83D\uDE4F", PERSON_RAISING_HAND = "\uD83D\uDE4B", PERSON_BOWING = "\uD83D\uDE47", PERSON_SHRUGGING = "\uD83E\uDD37", PERSON_WALKING = "\uD83D\uDEB6", PERSON_RUNNING = "\uD83C\uDFC3", PERSON_SWIMMING = "\uD83C\uDFCA", PERSON_BIKING = "\uD83D\uDEB4", PERSON_DANCING = "\uD83D\uDC83", PEOPLE_HUGGING = "\uD83E\uDD17", SPEECH_BUBBLE = "\uD83D\uDCAC", THOUGHT_BUBBLE = "\uD83D\uDCAD", BUST_IN_SILHOUETTE = "\uD83D\uDC64", BUSTS_IN_SILHOUETTE = "\uD83D\uDC65", MONKEY_FACE = "\uD83D\uDC35", DOG_FACE = "\uD83D\uDC36", CAT_FACE = "\uD83D\uDC31", PIG_FACE = "\uD83D\uDC37", COW_FACE = "\uD83D\uDC2E", RABBIT_FACE = "\uD83D\uDC30", BEAR_FACE = "\uD83D\uDC3B", PANDA_FACE = "\uD83D\uDC3C", PENGUIN = "\uD83D\uDC27", BIRD = "\uD83D\uDC26", BABY_CHICK = "\uD83D\uDC24", HATCHING_CHICK = "\uD83D\uDC23", BUG = "\uD83D\uDC1B", BUTTERFLY = "\uD83E\uDD8B", SNAIL = "\uD83D\uDC0C", LADY_BEETLE = "\uD83D\uDC1E", SPIDER = "\uD83D\uDD77\uFE0F", WEB = "\uD83D\uDD78\uFE0F", TURTLE = "\uD83D\uDC22", FISH = "\uD83D\uDC1F", WHALE = "\uD83D\uDC33", DOLPHIN = "\uD83D\uDC2C", OCTOPUS = "\uD83D\uDC19", CACTUS = "\uD83C\uDF35", TULIP = "\uD83C\uDF37", ROSE = "\uD83C\uDF39", SUNFLOWER = "\uD83C\uDF3B", PALM_TREE = "\uD83C\uDF34", EVERGREEN_TREE = "\uD83C\uDF32", DECIDUOUS_TREE = "\uD83C\uDF33", EGGPLANT = "\uD83C\uDF46", TOMATO = "\uD83C\uDF45", CARROT = "\uD83E\uDD55", BROCCOLI = "\uD83E\uDD66", CORN = "\uD83C\uDF3D", HOT_PEPPER = "\uD83C\uDF36\uFE0F", BREAD = "\uD83C\uDF5E", CHEESE = "\uD83E\uDDC0", HAMBURGER = "\uD83C\uDF54", PIZZA = "\uD83C\uDF55", TACO = "\uD83C\uDF2E", SUSHI = "\uD83C\uDF63", CUPCAKE = "\uD83E\uDDC1", ICE_CREAM = "\uD83C\uDF68", DONUT = "\uD83C\uDF69", CAKE = "\uD83C\uDF82", COOKIES = "\uD83C\uDF6A" } declare enum TicketTypes { PAID = 1, FREE = 2, DONATION = 3 } declare enum TicketUsageTypes { REGULAR = 1, DAY_PASS = 2, TRACK_PASS = 3, WHOLE_EVENT_PASS = 4 } declare enum TicketVisibility { VISIBLE = 1, HIDDEN = 2, HIDDEN_WHEN_NO_SALE = 3, SCHEDULED = 4 } /** * Select what kind of venue this is for the event. * @readonly * @enum {integer} */ declare enum VenueType { /** @member {integer} */ /** A virtual only event. */ VIRTUAL = 1, /** @member {integer} */ /** An in person only event (IRL). */ IN_PERSON = 2, /** @member {integer} */ /** Combination of IRL and in-person. */ HYBRID = 3 } declare class Glitch { static config: { Config: typeof Config; }; static api: { Ads: typeof Ads; AccessKeys: typeof AccessKeys; Auth: typeof Auth; Campaigns: typeof Campaigns; Competitions: typeof Competitions; Communities: typeof Communities; Users: typeof Users; Events: typeof Events; Games: typeof Games; GameShows: typeof GameShows; Hashtags: typeof Hashtags; Feedback: typeof Feedback; Influencers: typeof Influencers; Teams: typeof Teams; Posts: typeof Posts; Messages: typeof Messages; Templates: typeof Templates; Waitlists: typeof Waitlists; Utility: typeof Utility; Tips: typeof Tips; Titles: typeof Titles; Social: typeof Social; SocialPosts: typeof SocialPosts; Subscriptions: typeof Subscriptions; TipPackages: typeof TipPackages; TipEmojis: typeof TipEmojis; TipPackagePurchases: typeof TipPackagePurchases; Publications: typeof Publications; Newsletters: typeof Newsletters; PlayTests: typeof PlayTests; Media: typeof Media; FestivalNetworking: typeof FestivalNetworking; Scheduler: typeof Scheduler; RedditSubreddits: typeof RedditSubreddits; Funnel: typeof Funnel; SocialStats: typeof SocialStats; WebsiteAnalytics: typeof WebsiteAnalytics; Fingerprinting: typeof Fingerprinting; ShortLinks: typeof ShortLinks; AIUsage: typeof AIUsage; MarketingAgencies: typeof MarketingAgencies; TwitchReporting: typeof TwitchReporting; Raffles: typeof Raffles; DiscordMarketplace: typeof DiscordMarketplace; Education: typeof Education; Crm: typeof Crm; Multiplayer: typeof Multiplayer; ServerOperations: typeof ServerOperations; Agents: typeof Agents; Mcp: typeof Mcp; PrDirectory: typeof PrDirectory; AdminReports: typeof AdminReports; AdminUsers: typeof AdminUsers; MarketResearch: typeof MarketResearch; GameAdvertising: typeof GameAdvertising; Hosting: typeof Hosting; GameDesign: typeof GameDesign; Microtransactions: typeof Microtransactions; Preorders: typeof Preorders; }; static util: { Requests: typeof Requests; Parser: typeof Parser; Session: typeof Session; Storage: typeof Storage; Data: typeof Data; LabelManager: typeof LabelManager; }; static constants: { AcceptanceStatus: Readonly<{ UNAPPROVED: 0; APPROVED: 1; IN_REVIEW: 2; PENDING: 3; REQUIRE_MORE_INFORMATION: 4; DENIED: 5; BANNED: 6; PROBATION: 7; }>; AddressLocationType: Readonly<{ VIRTUAL: 1; IN_PERSON: 2; HYBRID: 3; }>; CampaignObjective: { BrandAwareness: number; AudienceEngagement: number; LeadGeneration: number; SalesConversion: number; BrandIdentityReputation: number; CustomerLoyaltyRetention: number; ContentAmplificationDiversity: number; MarketFeedbackInsight: number; EducatingAudience: number; CommunityBuilding: number; DrivingWebTraffic: number; SEOBenefits: number; }; CompetitionTypes: Readonly<{ SINGLE_ELIMINATION: 1; DOUBLE_ELIMINATION: 2; MULTILEVEL: 3; STRAIGHT_ROUND_ROBIN: 4; ROUND_ROBIN_DOUBLE_SPLIT: 5; ROUND_ROBIN_TRIPLE_SPLIT: 6; ROUND_ROBIN_QUADRUPLE_SPLIT: 7; SEMI_ROUND_ROBINS: 8; EXTENDED: 9; }>; ContentStatus: Readonly<{ UNAPPROVED: 0; APPROVED: 1; IN_REVIEW: 2; PENDING: 3; FLAGGED: 4; REMOVED: 5; DELETED: 6; }>; InfluencerCampaignType: { SponsoredContent: number; AffiliateMarketing: number; ProductGifting: number; BrandAmbassador: number; SocialMediaTakeover: number; ContestsGiveaways: number; EventCoverage: number; CoCreationOfProducts: number; InfluencerWhitelisting: number; SocialIssuesCauseCampaigns: number; }; Modes: typeof Modes; PostTypes: Readonly<{ TEXT: "text"; LINK: "link"; POLL: "poll"; IMAGE: "image"; VIDEO: "video"; }>; Roles: typeof Roles; SocialInteractions: typeof SocialInteractions; TeamJoinProcess: typeof TeamJoinProcess; TicketTypes: typeof TicketTypes; TicketUsageTypes: typeof TicketUsageTypes; TicketVisibility: typeof TicketVisibility; VenueType: typeof VenueType; }; } export { type FestivalApplicationInput, type FestivalApplicationState, type FestivalConversation, type FestivalMediaUpload, type FestivalNetworkingFilters, type FestivalNetworkingProfile, type FestivalNetworkingResponse, type FestivalNetworkingSettings, type FestivalPost, type FestivalPostInput, type FestivalPostKind, type FestivalPostState, type FestivalPreferences, type FestivalReportInput, type FestivalRequestOptions, type FestivalWorkType, type MicrotransactionAbility, type MicrotransactionBranding, type MicrotransactionBridge, type MicrotransactionBridgeOptions, type MicrotransactionCapabilities, type MicrotransactionCatalog, type MicrotransactionCatalogFilter, type MicrotransactionCheckoutInput, type MicrotransactionCheckoutResult, type MicrotransactionCheckoutSession, type MicrotransactionCheckoutSessionInput, type MicrotransactionConsumeInput, type MicrotransactionCreatedCheckoutSession, type MicrotransactionCurrency, type MicrotransactionDelivery, type MicrotransactionDeliveryListFilters, type MicrotransactionDeliveryResult, type MicrotransactionDeliverySettings, type MicrotransactionDeliverySettingsInput, type MicrotransactionDeliveryStatus, type MicrotransactionEarnings, type MicrotransactionEntitlement, type MicrotransactionEnvironment, type MicrotransactionEnvironmentFilter, type MicrotransactionError, type MicrotransactionErrorCode, type MicrotransactionFramePolicy, type MicrotransactionFulfillmentStatus, type MicrotransactionGrant, type MicrotransactionGrantUsage, type MicrotransactionGrantUsageStatus, type MicrotransactionHandoff, type MicrotransactionHandoffClaim, type MicrotransactionHandoffClaimInput, type MicrotransactionLegacyConfirmation, type MicrotransactionManagementListFilters, type MicrotransactionMedia, type MicrotransactionMyPurchases, type MicrotransactionMyPurchasesFilters, type MicrotransactionOperation, type MicrotransactionOperationCapability, type MicrotransactionOrder, type MicrotransactionOrderDetail, type MicrotransactionOrderListFilters, type MicrotransactionOverlay, type MicrotransactionOverlayOptions, type MicrotransactionPaymentStatus, type MicrotransactionPayout, type MicrotransactionPayoutListFilters, type MicrotransactionPayoutStatus, type MicrotransactionPlayerPurchase, type MicrotransactionPrice, type MicrotransactionProduct, type MicrotransactionProductInput, type MicrotransactionProductListFilters, type MicrotransactionProductStatus, type MicrotransactionProductType, type MicrotransactionProvider, type MicrotransactionProviderConfiguration, type MicrotransactionProviderInput, type MicrotransactionProviderName, type MicrotransactionProviderOnboarding, type MicrotransactionProviderOnboardingInput, type MicrotransactionProviderSku, type MicrotransactionPurchaseInput, type MicrotransactionPurchaseMessage, type MicrotransactionPurchasePagination, type MicrotransactionQuote, type MicrotransactionReadiness, type MicrotransactionReadyMessage, type MicrotransactionRefund, type MicrotransactionRefundInput, type MicrotransactionRefundListFilters, type MicrotransactionRefundRecord, type MicrotransactionRefundRequest, type MicrotransactionRefundStatus, type MicrotransactionRelatedListFilters, type MicrotransactionRequestOptions, type MicrotransactionResponse, type MicrotransactionRestoreBridgeOptions, type MicrotransactionSessionOptions, type MicrotransactionSettings, type MicrotransactionSettingsInput, type MicrotransactionTaxCollection, type MicrotransactionVerifiedSession, type PreorderAdminOrderAction, type PreorderAdminOrderFilters, type PreorderCatalog, type PreorderDerivedState, type PreorderFulfillmentStatus, type PreorderFulfillmentType, type PreorderInventory, type PreorderOffer, type PreorderOfferInput, type PreorderOfferStatus, type PreorderOrder, type PreorderPaymentStatus, type PreorderPrice, type PreorderPurchaseInput, type PreorderReadiness, type PreorderReadinessIssue, type PreorderRequestOptions, type PreorderSettings, createMicrotransactionBridge, createMicrotransactionNonce, createMicrotransactionRestoreBridge, Glitch as default, openMicrotransactionOverlay, openMicrotransactionRestoreOverlay };