// This file is auto-generated by @hey-api/openapi-ts import { type Client, formDataBodySerializer, type Options as Options2, type TDataShape } from './client'; import { client } from './client.gen'; import type { AnimationsApiPuzzleResultsData, AnimationsApiPuzzleResultsResponses, AnimationsApiResultsData, AnimationsApiResultsResponses, AnimationsApiTopSubmissionsData, AnimationsApiTopSubmissionsResponses, GamesApiListGamesData, GamesApiListGamesResponses, NoitaApiGetLeaderboardData, NoitaApiGetLeaderboardResponses, NoitaApiGetResultsData, NoitaApiGetResultsResponses, NoitaApiSubmitLogFileData, NoitaApiSubmitLogFileErrors, NoitaApiSubmitLogFileResponses, OpusMagnumApiCreateSubmissionData, OpusMagnumApiCreateSubmissionResponses, OpusMagnumApiDeleteSubmissionData, OpusMagnumApiDeleteSubmissionResponses, OpusMagnumApiGetCollectionData, OpusMagnumApiGetCollectionResponses, OpusMagnumApiGetStatsData, OpusMagnumApiGetStatsResponses, OpusMagnumApiGetSubmissionData, OpusMagnumApiGetSubmissionResponses, OpusMagnumApiListPuzzlesData, OpusMagnumApiListPuzzlesResponses, OpusMagnumApiListResponsesNeedingValidationData, OpusMagnumApiListResponsesNeedingValidationResponses, OpusMagnumApiListSubmissionsData, OpusMagnumApiListSubmissionsResponses, OpusMagnumApiValidateAutoData, OpusMagnumApiValidateAutoResponses, OpusMagnumApiValidateResponseData, OpusMagnumApiValidateResponseResponses, OpusMagnumApiValidateSubmissionData, OpusMagnumApiValidateSubmissionResponses, PolylanSubmitterApiClearCacheData, PolylanSubmitterApiClearCacheResponses, PolylanSubmitterApiGetUserInfoData, PolylanSubmitterApiGetUserInfoResponses, PolylanSubmitterApiHealthCheckData, PolylanSubmitterApiHealthCheckResponses, SubmissionsApiCreateSubmissionData, SubmissionsApiCreateSubmissionResponses, SubmissionsApiGetSubmissionData, SubmissionsApiGetSubmissionResponses, SubmissionsApiListSubmissionsByGameData, SubmissionsApiListSubmissionsByGameResponses } from './types.gen'; export type Options = Options2 & { /** * You can provide a client instance returned by `createClient()` instead of * individual options. This might be also useful if you want to implement a * custom client. */ client?: Client; /** * You can pass arbitrary values through the `meta` object. This can be * used to access values that aren't defined as part of the SDK function. */ meta?: Record; }; /** * Health Check * * Health check endpoint */ export const polylanSubmitterApiHealthCheck = (options?: Options) => (options?.client ?? client).get({ url: '/api/health', ...options }); /** * Clear Cache * * Clear all API caches (admin only) */ export const polylanSubmitterApiClearCache = (options?: Options) => (options?.client ?? client).post({ url: '/api/cache/clear', ...options }); /** * Get User Info * * Get current user information */ export const polylanSubmitterApiGetUserInfo = (options?: Options) => (options?.client ?? client).get({ url: '/api/user', ...options }); /** * List Puzzles * * Get list of available puzzles */ export const opusMagnumApiListPuzzles = (options?: Options) => (options?.client ?? client).get({ url: '/api/opus-magnum/puzzles', ...options }); /** * Get Collection * * Get the active collection details */ export const opusMagnumApiGetCollection = (options?: Options) => (options?.client ?? client).get({ url: '/api/opus-magnum/collection', ...options }); /** * List Submissions * * Get paginated list of submissions */ export const opusMagnumApiListSubmissions = (options?: Options) => (options?.client ?? client).get({ url: '/api/opus-magnum/submissions', ...options }); /** * Create Submission * * Create a new submission with multiple puzzle responses */ export const opusMagnumApiCreateSubmission = (options: Options) => (options.client ?? client).post({ ...formDataBodySerializer, url: '/api/opus-magnum/submissions', ...options, headers: { 'Content-Type': null, ...options.headers } }); /** * Delete Submission * * Delete a submission (admin only) */ export const opusMagnumApiDeleteSubmission = (options: Options) => (options.client ?? client).delete({ url: '/api/opus-magnum/submissions/{submission_id}', ...options }); /** * Get Submission * * Get detailed submission by ID */ export const opusMagnumApiGetSubmission = (options: Options) => (options.client ?? client).get({ url: '/api/opus-magnum/submissions/{submission_id}', ...options }); /** * Validate Response * * Manually validate a puzzle response */ export const opusMagnumApiValidateResponse = (options: Options) => (options.client ?? client).put({ url: '/api/opus-magnum/responses/{response_id}/validate', ...options, headers: { 'Content-Type': 'application/json', ...options.headers } }); /** * Validate Auto * * Try to auto validate a puzzle response */ export const opusMagnumApiValidateAuto = (options: Options) => (options.client ?? client).put({ url: '/api/opus-magnum/responses/{response_id}/validate/auto', ...options }); /** * List Responses Needing Validation * * Get all responses that need manual validation */ export const opusMagnumApiListResponsesNeedingValidation = (options?: Options) => (options?.client ?? client).get({ url: '/api/opus-magnum/responses/needs-validation', ...options }); /** * Validate Submission * * Mark entire submission as validated */ export const opusMagnumApiValidateSubmission = (options: Options) => (options.client ?? client).post({ url: '/api/opus-magnum/submissions/{submission_id}/validate', ...options }); /** * Get Stats * * Get submission statistics */ export const opusMagnumApiGetStats = (options?: Options) => (options?.client ?? client).get({ url: '/api/opus-magnum/stats', ...options }); /** * Results */ export const animationsApiResults = (options?: Options) => (options?.client ?? client).get({ url: '/api/results/results', ...options }); /** * Top Submissions * * Get tournament top submissions for each puzzle. Only available when tournament is closed. */ export const animationsApiTopSubmissions = (options?: Options) => (options?.client ?? client).get({ url: '/api/results/top-submissions', ...options }); /** * Puzzle Results * * Get tournament results organized by puzzle with coefficients. Only available when tournament is closed. */ export const animationsApiPuzzleResults = (options?: Options) => (options?.client ?? client).get({ url: '/api/results/puzzle-results', ...options }); /** * Get Results */ export const noitaApiGetResults = (options?: Options) => (options?.client ?? client).get({ url: '/api/noita/results', ...options }); /** * Get Leaderboard * * Get the global leaderboard for all users ranked by total score. * * Uses Window functions to rank users by their total score in descending order. */ export const noitaApiGetLeaderboard = (options?: Options) => (options?.client ?? client).get({ url: '/api/noita/leaderboard', ...options }); /** * Submit Log File * * Submit a Noita run file (log file, screenshot, or video). * * Accepts: * - Text files (.txt) for polylan_mod_log.txt * - Images (.png, .jpg, .gif) * - Videos (.mp4, .webm) * * Max file size: 256 MB */ export const noitaApiSubmitLogFile = (options: Options) => (options.client ?? client).post({ ...formDataBodySerializer, url: '/api/noita/submit', ...options, headers: { 'Content-Type': null, ...options.headers } }); /** * List Games */ export const gamesApiListGames = (options?: Options) => (options?.client ?? client).get({ url: '/api/games/', ...options }); /** * Create Submission */ export const submissionsApiCreateSubmission = (options: Options) => (options.client ?? client).post({ ...formDataBodySerializer, url: '/api/submissions/create', ...options, headers: { 'Content-Type': null, ...options.headers } }); /** * Get Submission */ export const submissionsApiGetSubmission = (options: Options) => (options.client ?? client).get({ url: '/api/submissions/{submission_id}', ...options }); /** * List Submissions By Game */ export const submissionsApiListSubmissionsByGame = (options: Options) => (options.client ?? client).get({ url: '/api/submissions/game/{game_id}', ...options });