// This file is auto-generated by @hey-api/openapi-ts

export type ClientOptions = {
    baseUrl: string;
};

/**
 * UserInfoOut
 *
 * Schema for user information output
 */
export type UserInfoOut = {
    /**
     * Id
     */
    id?: number | null;
    /**
     * Username
     */
    username?: string | null;
    /**
     * First Name
     */
    first_name?: string | null;
    /**
     * Last Name
     */
    last_name?: string | null;
    /**
     * Email
     */
    email?: string | null;
    /**
     * Is Authenticated
     */
    is_authenticated: boolean;
    /**
     * Is Staff
     */
    is_staff: boolean;
    /**
     * Is Superuser
     */
    is_superuser: boolean;
    /**
     * Cas Groups
     */
    cas_groups?: Array<string> | null;
};

/**
 * PuzzlePointsFactorOut
 *
 * Schema for puzzle points factor
 */
export type PuzzlePointsFactorOut = {
    /**
     * Cost
     */
    cost: number;
    /**
     * Cycles
     */
    cycles: number;
    /**
     * Area
     */
    area: number;
};

/**
 * SteamCollectionItemOut
 *
 * Schema for Steam collection item output
 */
export type SteamCollectionItemOut = {
    /**
     * Steam Url
     */
    steam_url: string;
    points_factor?: PuzzlePointsFactorOut | null;
    /**
     * ID
     */
    id: number;
    /**
     * Steam Item Id
     *
     * Steam Workshop item ID
     */
    steam_item_id: string;
    /**
     * Title
     *
     * Item title
     */
    title: string;
    /**
     * Author Name
     *
     * Steam username of item creator
     */
    author_name: string;
    /**
     * Description
     *
     * Item description
     */
    description: string;
    /**
     * Tags
     *
     * Item tags as JSON array
     */
    tags?: {
        [key: string]: unknown;
    };
    /**
     * Order Index
     *
     * Order of item in collection
     */
    order_index?: number;
    /**
     * Created At
     */
    created_at: string;
    /**
     * Updated At
     */
    updated_at: string;
};

/**
 * SteamCollectionOut
 *
 * Schema for Steam collection output
 */
export type SteamCollectionOut = {
    /**
     * ID
     */
    id: number;
    /**
     * Steam Id
     *
     * Steam collection ID from URL
     */
    steam_id: string;
    /**
     * Title
     *
     * Collection title
     */
    title: string;
    /**
     * Description
     *
     * Collection description
     */
    description: string;
    /**
     * Author Name
     *
     * Steam username of collection creator
     */
    author_name: string;
    /**
     * Total Items
     *
     * Number of items in collection
     */
    total_items?: number;
    /**
     * Unique Visitors
     *
     * Number of unique visitors
     */
    unique_visitors?: number;
    /**
     * Current Favorites
     *
     * Current number of favorites
     */
    current_favorites?: number;
    /**
     * Accepting Submissions
     *
     * Whether the tournament is accepting new submissions
     */
    accepting_submissions?: boolean;
    /**
     * Created At
     */
    created_at: string;
    /**
     * Updated At
     */
    updated_at: string;
};

/**
 * Input
 */
export type Input = {
    /**
     * Limit
     */
    limit?: number;
    /**
     * Offset
     */
    offset?: number;
};

/**
 * PagedSubmissionOut
 */
export type PagedSubmissionOut = {
    /**
     * Items
     */
    items: Array<SubmissionOut>;
    /**
     * Count
     */
    count: number;
};

/**
 * PuzzleResponseOut
 *
 * Schema for puzzle response output
 */
export type PuzzleResponseOut = {
    /**
     * Files
     */
    files: Array<SubmissionFileOut>;
    /**
     * Final Cost
     */
    final_cost: number | null;
    /**
     * Final Cycles
     */
    final_cycles: number | null;
    /**
     * Final Area
     */
    final_area: number | null;
    /**
     * ID
     */
    id: number;
    /**
     * Puzzle
     *
     * The puzzle this response is for
     */
    puzzle_id: number;
    /**
     * Puzzle Name
     *
     * Puzzle name as detected by OCR
     */
    puzzle_name: string;
    /**
     * Cost
     *
     * Cost value from OCR
     */
    cost: number;
    /**
     * Cycles
     *
     * Cycles value from OCR
     */
    cycles: number;
    /**
     * Area
     *
     * Area value from OCR
     */
    area: number;
    /**
     * Needs Manual Validation
     *
     * Whether OCR failed and manual validation is needed
     */
    needs_manual_validation?: boolean;
    /**
     * Ocr Confidence Cost
     *
     * OCR confidence score for cost (0.0 to 1.0)
     */
    ocr_confidence_cost?: number | null;
    /**
     * Ocr Confidence Cycles
     *
     * OCR confidence score for cycles (0.0 to 1.0)
     */
    ocr_confidence_cycles?: number | null;
    /**
     * Ocr Confidence Area
     *
     * OCR confidence score for area (0.0 to 1.0)
     */
    ocr_confidence_area?: number | null;
    /**
     * Validated Cost
     *
     * Manually validated cost value
     */
    validated_cost?: number | null;
    /**
     * Validated Cycles
     *
     * Manually validated cycles value
     */
    validated_cycles?: number | null;
    /**
     * Validated Area
     *
     * Manually validated area value
     */
    validated_area?: number | null;
    /**
     * Created At
     */
    created_at: string;
    /**
     * Updated At
     */
    updated_at: string;
};

/**
 * SubmissionFileOut
 *
 * Schema for submission file output
 */
export type SubmissionFileOut = {
    /**
     * File Url
     */
    file_url: string | null;
    /**
     * ID
     */
    id: number;
    /**
     * Original Filename
     *
     * Original filename as uploaded by user
     */
    original_filename: string;
    /**
     * File Size
     *
     * File size in bytes
     */
    file_size: number;
    /**
     * Content Type
     *
     * MIME type of the file
     */
    content_type: string;
    /**
     * Ocr Processed
     *
     * Whether OCR has been processed for this file
     */
    ocr_processed?: boolean;
    /**
     * Ocr Raw Data
     *
     * Raw OCR data as JSON
     */
    ocr_raw_data?: {
        [key: string]: unknown;
    } | null;
    /**
     * Ocr Error
     *
     * OCR processing error message
     */
    ocr_error: string;
    /**
     * Created At
     */
    created_at: string;
};

/**
 * SubmissionOut
 *
 * Schema for submission output
 */
export type SubmissionOut = {
    /**
     * Responses
     */
    responses: Array<PuzzleResponseOut>;
    /**
     * Total Responses
     */
    total_responses: number;
    /**
     * Needs Validation
     */
    needs_validation: boolean;
    /**
     * Id
     */
    id?: string;
    /**
     * User
     *
     * User who made the submission (null for anonymous)
     */
    user_id?: number | null;
    /**
     * Notes
     *
     * Optional notes about the submission
     */
    notes?: string | null;
    /**
     * Is Validated
     *
     * Whether this submission has been manually validated
     */
    is_validated?: boolean;
    /**
     * Validated By
     *
     * Admin user who validated this submission
     */
    validated_by_id?: number | null;
    /**
     * Validated At
     *
     * When this submission was validated
     */
    validated_at?: string | null;
    /**
     * Manual Validation Requested
     *
     * Whether the user specifically requested manual validation
     */
    manual_validation_requested?: boolean;
    /**
     * Created At
     */
    created_at: string;
    /**
     * Updated At
     */
    updated_at: string;
};

/**
 * PuzzleResponseIn
 *
 * Schema for creating a puzzle response
 */
export type PuzzleResponseIn = {
    /**
     * Puzzle Id
     */
    puzzle_id: number;
    /**
     * Puzzle Name
     */
    puzzle_name: string;
    /**
     * Cost
     */
    cost?: number | null;
    /**
     * Cycles
     */
    cycles?: number | null;
    /**
     * Area
     */
    area?: number | null;
    /**
     * Needs Manual Validation
     */
    needs_manual_validation?: boolean;
    /**
     * Ocr Confidence Cost
     */
    ocr_confidence_cost?: number | null;
    /**
     * Ocr Confidence Cycles
     */
    ocr_confidence_cycles?: number | null;
    /**
     * Ocr Confidence Area
     */
    ocr_confidence_area?: number | null;
};

/**
 * SubmissionIn
 *
 * Schema for creating a submission
 */
export type SubmissionIn = {
    /**
     * Notes
     */
    notes?: string | null;
    /**
     * Manual Validation Requested
     */
    manual_validation_requested?: boolean;
    /**
     * Responses
     */
    responses: Array<PuzzleResponseIn>;
};

/**
 * ValidationIn
 *
 * Schema for manual validation input
 */
export type ValidationIn = {
    /**
     * Puzzle
     */
    puzzle?: number | null;
    /**
     * Validated Cost
     */
    validated_cost?: number | null;
    /**
     * Validated Cycles
     */
    validated_cycles?: number | null;
    /**
     * Validated Area
     */
    validated_area?: number | null;
};

/**
 * PuzzleResponseRankingOut
 */
export type PuzzleResponseRankingOut = {
    /**
     * Points
     */
    points?: number | null;
    /**
     * Rank Points
     */
    rank_points?: number | null;
    /**
     * Puzzle User Rank
     */
    puzzle_user_rank: number;
    /**
     * User Response Rank
     */
    user_response_rank: number;
    /**
     * User Id
     */
    user_id: number;
    /**
     * Final Cost
     */
    final_cost: number | null;
    /**
     * Final Cycles
     */
    final_cycles: number | null;
    /**
     * Final Area
     */
    final_area: number | null;
    /**
     * ID
     */
    id: number;
    /**
     * Puzzle Name
     *
     * Puzzle name as detected by OCR
     */
    puzzle_name: string;
    /**
     * Created At
     */
    created_at: string;
    /**
     * Updated At
     */
    updated_at: string;
};

/**
 * RankingSchema
 */
export type RankingSchema = {
    /**
     * Users
     */
    users: Array<UserDisplayOut>;
    /**
     * Puzzles
     */
    puzzles: Array<SteamCollectionItemOut>;
    /**
     * Responses By Userid
     */
    responses_by_userid: {
        [key: string]: Array<PuzzleResponseRankingOut>;
    };
    /**
     * Ranking By Puzzle
     */
    ranking_by_puzzle: {
        [key: string]: Array<PuzzleResponseRankingOut>;
    };
};

/**
 * UserDisplayOut
 */
export type UserDisplayOut = {
    /**
     * Id
     */
    id: number;
    /**
     * Username
     */
    username: string;
    /**
     * Is Staff
     */
    is_staff: boolean;
};

/**
 * PuzzleSubmissionsOut
 *
 * Schema for puzzle with all top submissions
 */
export type PuzzleSubmissionsOut = {
    /**
     * Puzzle Id
     */
    puzzle_id: number;
    /**
     * Puzzle Title
     */
    puzzle_title: string;
    /**
     * Submissions
     */
    submissions: Array<WinnerResponseOut>;
};

/**
 * TournamentSubmissionsOut
 *
 * Schema for tournament top submissions results
 */
export type TournamentSubmissionsOut = {
    /**
     * Submissions
     */
    submissions: Array<PuzzleSubmissionsOut>;
};

/**
 * WinnerFileOut
 *
 * Schema for winner submission file
 */
export type WinnerFileOut = {
    /**
     * File Url
     */
    file_url: string;
    /**
     * Original Filename
     */
    original_filename: string;
};

/**
 * WinnerResponseOut
 *
 * Schema for winner response with files
 */
export type WinnerResponseOut = {
    /**
     * User Id
     */
    user_id: number;
    /**
     * Username
     */
    username: string;
    /**
     * Final Cost
     */
    final_cost: number | null;
    /**
     * Final Cycles
     */
    final_cycles: number | null;
    /**
     * Final Area
     */
    final_area: number | null;
    /**
     * Rank Points
     */
    rank_points: number | null;
    /**
     * Total Coef
     */
    total_coef: number | null;
    /**
     * Files
     */
    files: Array<WinnerFileOut>;
};

/**
 * PuzzleResultsOut
 *
 * Schema for puzzle-specific results with coefficients
 */
export type PuzzleResultsOut = {
    /**
     * Puzzle Id
     */
    puzzle_id: number;
    /**
     * Puzzle Title
     */
    puzzle_title: string;
    points_factor: PuzzlePointsFactorOut | null;
    /**
     * Submissions
     */
    submissions: Array<PuzzleSubmissionWithRankOut>;
};

/**
 * PuzzleSubmissionWithRankOut
 *
 * Schema for puzzle submission with rank
 */
export type PuzzleSubmissionWithRankOut = {
    /**
     * Rank
     */
    rank: number;
    /**
     * User Id
     */
    user_id: number;
    /**
     * Username
     */
    username: string;
    /**
     * Final Cost
     */
    final_cost: number | null;
    /**
     * Final Cycles
     */
    final_cycles: number | null;
    /**
     * Final Area
     */
    final_area: number | null;
    /**
     * Rank Points
     */
    rank_points: number | null;
    /**
     * Total Coef
     */
    total_coef: number | null;
    /**
     * Files
     */
    files: Array<WinnerFileOut>;
};

/**
 * TournamentPuzzleResultsOut
 *
 * Schema for tournament puzzle-specific results
 */
export type TournamentPuzzleResultsOut = {
    /**
     * Results
     */
    results: Array<PuzzleResultsOut>;
};

/**
 * ObjectivResultOut
 */
export type ObjectivResultOut = {
    /**
     * Objectiv Id
     */
    objectiv_id: string;
    /**
     * Display String
     */
    display_string: string;
    /**
     * First Seen At
     */
    first_seen_at: string | null;
    /**
     * Count
     */
    count: number;
    /**
     * Max Count
     */
    max_count: number;
    /**
     * Seed
     */
    seed: string | null;
    /**
     * Points Per Objectiv
     */
    points_per_objectiv: number;
    /**
     * Total Points
     */
    total_points: number | null;
};

/**
 * ResultsOut
 */
export type ResultsOut = {
    /**
     * Total Score
     */
    total_score: number;
    /**
     * Deaths Count
     */
    deaths_count: number;
    /**
     * Objectives
     */
    objectives: Array<ObjectivResultOut>;
};

/**
 * LeaderboardEntryOut
 */
export type LeaderboardEntryOut = {
    /**
     * Rank
     */
    rank: number;
    /**
     * Username
     */
    username: string;
    /**
     * Is Staff
     */
    is_staff: boolean;
    /**
     * Total Score
     */
    total_score: number;
    /**
     * Objectives Count
     */
    objectives_count: number;
    /**
     * Deaths Count
     */
    deaths_count: number;
};

/**
 * LeaderboardOut
 */
export type LeaderboardOut = {
    /**
     * Leaderboard
     */
    leaderboard: Array<LeaderboardEntryOut>;
};

/**
 * NoitaSubmissionOut
 */
export type NoitaSubmissionOut = {
    /**
     * Id
     */
    id: string;
    /**
     * User Id
     */
    user_id: number | null;
    /**
     * Username
     */
    username: string | null;
    /**
     * File Size
     */
    file_size: number;
    /**
     * Content Type
     */
    content_type: string;
    /**
     * Created At
     */
    created_at: string;
    /**
     * Processed
     */
    processed: boolean;
};

/**
 * GameOut
 */
export type GameOut = {
    /**
     * Steam App Id
     */
    steam_app_id: number;
    /**
     * Name
     */
    name: string;
    /**
     * Path
     */
    path: string;
};

/**
 * MarketListSchema
 */
export type MarketListSchema = {
    /**
     * Uuid
     */
    uuid: string;
    /**
     * Title
     */
    title: string;
    /**
     * Description
     */
    description: string;
    /**
     * Type
     */
    type: string;
    /**
     * Status
     */
    status: string;
    /**
     * End Date
     */
    end_date: string;
    /**
     * Created At
     */
    created_at: string;
    /**
     * Options
     */
    options: Array<MarketOptionSchema>;
    winning_option?: MarketOptionSchema | null;
};

/**
 * MarketOptionSchema
 */
export type MarketOptionSchema = {
    /**
     * Uuid
     */
    uuid: string;
    /**
     * Text
     */
    text: string;
    /**
     * Position
     */
    position: number;
};

/**
 * UserBetSchema
 */
export type UserBetSchema = {
    /**
     * Uuid
     */
    uuid: string;
    /**
     * Amount
     */
    amount: number;
    /**
     * Created At
     */
    created_at: string;
    option: MarketOptionSchema;
    market?: MarketListSchema | null;
};

/**
 * ResolveMarketSchema
 */
export type ResolveMarketSchema = {
    /**
     * Winning Option Uuid
     */
    winning_option_uuid: string;
};

/**
 * UserBetCreateSchema
 */
export type UserBetCreateSchema = {
    /**
     * Option Uuid
     */
    option_uuid: string;
    /**
     * Amount
     */
    amount: number;
};

export type PolylanSubmitterApiHealthCheckData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/health';
};

export type PolylanSubmitterApiHealthCheckResponses = {
    /**
     * OK
     */
    200: unknown;
};

export type PolylanSubmitterApiClearCacheData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/cache/clear';
};

export type PolylanSubmitterApiClearCacheResponses = {
    /**
     * OK
     */
    200: unknown;
};

export type PolylanSubmitterApiGetUserInfoData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/user';
};

export type PolylanSubmitterApiGetUserInfoResponses = {
    /**
     * OK
     */
    200: UserInfoOut;
};

export type PolylanSubmitterApiGetUserInfoResponse = PolylanSubmitterApiGetUserInfoResponses[keyof PolylanSubmitterApiGetUserInfoResponses];

export type SubmissionsApiListPuzzlesData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/submissions/puzzles';
};

export type SubmissionsApiListPuzzlesResponses = {
    /**
     * Response
     *
     * OK
     */
    200: Array<SteamCollectionItemOut>;
};

export type SubmissionsApiListPuzzlesResponse = SubmissionsApiListPuzzlesResponses[keyof SubmissionsApiListPuzzlesResponses];

export type SubmissionsApiGetCollectionData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/submissions/collection';
};

export type SubmissionsApiGetCollectionResponses = {
    /**
     * OK
     */
    200: SteamCollectionOut;
};

export type SubmissionsApiGetCollectionResponse = SubmissionsApiGetCollectionResponses[keyof SubmissionsApiGetCollectionResponses];

export type SubmissionsApiListSubmissionsData = {
    body?: never;
    path?: never;
    query?: {
        /**
         * Limit
         */
        limit?: number;
        /**
         * Offset
         */
        offset?: number;
    };
    url: '/api/submissions/submissions';
};

export type SubmissionsApiListSubmissionsResponses = {
    /**
     * OK
     */
    200: PagedSubmissionOut;
};

export type SubmissionsApiListSubmissionsResponse = SubmissionsApiListSubmissionsResponses[keyof SubmissionsApiListSubmissionsResponses];

export type SubmissionsApiCreateSubmissionData = {
    /**
     * MultiPartBodyParams
     */
    body: {
        /**
         * Files
         */
        files: Array<Blob | File>;
        data: SubmissionIn;
    };
    path?: never;
    query?: never;
    url: '/api/submissions/submissions';
};

export type SubmissionsApiCreateSubmissionResponses = {
    /**
     * OK
     */
    200: SubmissionOut;
};

export type SubmissionsApiCreateSubmissionResponse = SubmissionsApiCreateSubmissionResponses[keyof SubmissionsApiCreateSubmissionResponses];

export type SubmissionsApiDeleteSubmissionData = {
    body?: never;
    path: {
        /**
         * Submission Id
         */
        submission_id: string;
    };
    query?: never;
    url: '/api/submissions/submissions/{submission_id}';
};

export type SubmissionsApiDeleteSubmissionResponses = {
    /**
     * OK
     */
    200: unknown;
};

export type SubmissionsApiGetSubmissionData = {
    body?: never;
    path: {
        /**
         * Submission Id
         */
        submission_id: string;
    };
    query?: never;
    url: '/api/submissions/submissions/{submission_id}';
};

export type SubmissionsApiGetSubmissionResponses = {
    /**
     * OK
     */
    200: SubmissionOut;
};

export type SubmissionsApiGetSubmissionResponse = SubmissionsApiGetSubmissionResponses[keyof SubmissionsApiGetSubmissionResponses];

export type SubmissionsApiValidateResponseData = {
    body: ValidationIn;
    path: {
        /**
         * Response Id
         */
        response_id: number;
    };
    query?: never;
    url: '/api/submissions/responses/{response_id}/validate';
};

export type SubmissionsApiValidateResponseResponses = {
    /**
     * OK
     */
    200: PuzzleResponseOut;
};

export type SubmissionsApiValidateResponseResponse = SubmissionsApiValidateResponseResponses[keyof SubmissionsApiValidateResponseResponses];

export type SubmissionsApiValidateAutoData = {
    body?: never;
    path: {
        /**
         * Response Id
         */
        response_id: number;
    };
    query?: never;
    url: '/api/submissions/responses/{response_id}/validate/auto';
};

export type SubmissionsApiValidateAutoResponses = {
    /**
     * OK
     */
    200: PuzzleResponseOut;
};

export type SubmissionsApiValidateAutoResponse = SubmissionsApiValidateAutoResponses[keyof SubmissionsApiValidateAutoResponses];

export type SubmissionsApiListResponsesNeedingValidationData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/submissions/responses/needs-validation';
};

export type SubmissionsApiListResponsesNeedingValidationResponses = {
    /**
     * Response
     *
     * OK
     */
    200: Array<PuzzleResponseOut>;
};

export type SubmissionsApiListResponsesNeedingValidationResponse = SubmissionsApiListResponsesNeedingValidationResponses[keyof SubmissionsApiListResponsesNeedingValidationResponses];

export type SubmissionsApiValidateSubmissionData = {
    body?: never;
    path: {
        /**
         * Submission Id
         */
        submission_id: string;
    };
    query?: never;
    url: '/api/submissions/submissions/{submission_id}/validate';
};

export type SubmissionsApiValidateSubmissionResponses = {
    /**
     * OK
     */
    200: SubmissionOut;
};

export type SubmissionsApiValidateSubmissionResponse = SubmissionsApiValidateSubmissionResponses[keyof SubmissionsApiValidateSubmissionResponses];

export type SubmissionsApiGetStatsData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/submissions/stats';
};

export type SubmissionsApiGetStatsResponses = {
    /**
     * OK
     */
    200: unknown;
};

export type AnimationsApiResultsData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/results/results';
};

export type AnimationsApiResultsResponses = {
    /**
     * OK
     */
    200: RankingSchema;
};

export type AnimationsApiResultsResponse = AnimationsApiResultsResponses[keyof AnimationsApiResultsResponses];

export type AnimationsApiTopSubmissionsData = {
    body?: never;
    path?: never;
    query?: {
        /**
         * Limit
         */
        limit?: number;
    };
    url: '/api/results/top-submissions';
};

export type AnimationsApiTopSubmissionsResponses = {
    /**
     * OK
     */
    200: TournamentSubmissionsOut;
};

export type AnimationsApiTopSubmissionsResponse = AnimationsApiTopSubmissionsResponses[keyof AnimationsApiTopSubmissionsResponses];

export type AnimationsApiPuzzleResultsData = {
    body?: never;
    path?: never;
    query?: {
        /**
         * Limit
         */
        limit?: number;
    };
    url: '/api/results/puzzle-results';
};

export type AnimationsApiPuzzleResultsResponses = {
    /**
     * OK
     */
    200: TournamentPuzzleResultsOut;
};

export type AnimationsApiPuzzleResultsResponse = AnimationsApiPuzzleResultsResponses[keyof AnimationsApiPuzzleResultsResponses];

export type NoitaApiGetResultsData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/noita/results';
};

export type NoitaApiGetResultsResponses = {
    /**
     * OK
     */
    200: ResultsOut;
};

export type NoitaApiGetResultsResponse = NoitaApiGetResultsResponses[keyof NoitaApiGetResultsResponses];

export type NoitaApiGetLeaderboardData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/noita/leaderboard';
};

export type NoitaApiGetLeaderboardResponses = {
    /**
     * OK
     */
    200: LeaderboardOut;
};

export type NoitaApiGetLeaderboardResponse = NoitaApiGetLeaderboardResponses[keyof NoitaApiGetLeaderboardResponses];

export type NoitaApiSubmitLogFileData = {
    /**
     * FileParams
     */
    body: {
        /**
         * File
         */
        file: Blob | File;
    };
    path?: never;
    query?: never;
    url: '/api/noita/submit';
};

export type NoitaApiSubmitLogFileErrors = {
    /**
     * Response
     *
     * Bad Request
     */
    400: {
        [key: string]: unknown;
    };
};

export type NoitaApiSubmitLogFileError = NoitaApiSubmitLogFileErrors[keyof NoitaApiSubmitLogFileErrors];

export type NoitaApiSubmitLogFileResponses = {
    /**
     * OK
     */
    200: NoitaSubmissionOut;
};

export type NoitaApiSubmitLogFileResponse = NoitaApiSubmitLogFileResponses[keyof NoitaApiSubmitLogFileResponses];

export type GamesApiListGamesData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/games/';
};

export type GamesApiListGamesResponses = {
    /**
     * Response
     *
     * OK
     */
    200: Array<GameOut>;
};

export type GamesApiListGamesResponse = GamesApiListGamesResponses[keyof GamesApiListGamesResponses];

export type MarketApiListMarketsData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/market/';
};

export type MarketApiListMarketsResponses = {
    /**
     * Response
     *
     * OK
     */
    200: Array<MarketListSchema>;
};

export type MarketApiListMarketsResponse = MarketApiListMarketsResponses[keyof MarketApiListMarketsResponses];

export type MarketApiListUserBetsData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/market/user/bets';
};

export type MarketApiListUserBetsResponses = {
    /**
     * Response
     *
     * OK
     */
    200: Array<UserBetSchema>;
};

export type MarketApiListUserBetsResponse = MarketApiListUserBetsResponses[keyof MarketApiListUserBetsResponses];

export type MarketApiCloseMarketData = {
    body?: never;
    path: {
        /**
         * Market Uuid
         */
        market_uuid: string;
    };
    query?: never;
    url: '/api/market/{market_uuid}/actions/close';
};

export type MarketApiCloseMarketResponses = {
    /**
     * OK
     */
    200: unknown;
};

export type MarketApiResolveMarketData = {
    body: ResolveMarketSchema;
    path: {
        /**
         * Market Uuid
         */
        market_uuid: string;
    };
    query?: never;
    url: '/api/market/{market_uuid}/actions/resolve';
};

export type MarketApiResolveMarketResponses = {
    /**
     * OK
     */
    200: MarketListSchema;
};

export type MarketApiResolveMarketResponse = MarketApiResolveMarketResponses[keyof MarketApiResolveMarketResponses];

export type MarketApiCreateBetData = {
    body: UserBetCreateSchema;
    path: {
        /**
         * Market Uuid
         */
        market_uuid: string;
    };
    query?: never;
    url: '/api/market/{market_uuid}/bets';
};

export type MarketApiCreateBetResponses = {
    /**
     * OK
     */
    200: UserBetSchema;
};

export type MarketApiCreateBetResponse = MarketApiCreateBetResponses[keyof MarketApiCreateBetResponses];
