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

/**
 * User's anime list status filter options
 */
export type user_anime_list_status_filter =
    | 'all'
    | 'watching'
    | 'completed'
    | 'onhold'
    | 'dropped'
    | 'plantowatch';

/**
 * Available Anime order_by properties
 */
export type anime_search_query_orderby =
    | 'mal_id'
    | 'title'
    | 'start_date'
    | 'end_date'
    | 'episodes'
    | 'score'
    | 'scored_by'
    | 'rank'
    | 'popularity'
    | 'members'
    | 'favorites';

/**
 * Available Anime audience ratings<br><br><b>Ratings</b><br><ul><li>G - All Ages</li><li>PG - Children</li><li>PG-13 - Teens 13 or older</li><li>R - 17+ (violence & profanity)</li><li>R+ - Mild Nudity</li><li>Rx - Hentai</li></ul>
 */
export type anime_search_query_rating =
    | 'g'
    | 'pg'
    | 'pg13'
    | 'r17'
    | 'r'
    | 'rx';

/**
 * Available Anime statuses
 */
export type anime_search_query_status = 'airing' | 'complete' | 'upcoming';

/**
 * Available Anime types
 */
export type anime_search_query_type =
    | 'tv'
    | 'movie'
    | 'ova'
    | 'special'
    | 'ona'
    | 'music'
    | 'cm'
    | 'pv'
    | 'tv_special';

/**
 * Available Character order_by properties
 */
export type characters_search_query_orderby = 'mal_id' | 'name' | 'favorites';

/**
 * Club Search Query Category
 */
export type club_search_query_category =
    | 'anime'
    | 'manga'
    | 'actors_and_artists'
    | 'characters'
    | 'cities_and_neighborhoods'
    | 'companies'
    | 'conventions'
    | 'games'
    | 'japan'
    | 'music'
    | 'other'
    | 'schools';

/**
 * Club Search Query OrderBy
 */
export type club_search_query_orderby =
    | 'mal_id'
    | 'name'
    | 'members_count'
    | 'created';

/**
 * Club Search Query Type
 */
export type club_search_query_type = 'public' | 'private' | 'secret';

/**
 * Users Search Query Gender.
 */
export type users_search_query_gender = 'any' | 'male' | 'female' | 'nonbinary';

/**
 * Filter genres by type
 */
export type genre_query_filter =
    | 'genres'
    | 'explicit_genres'
    | 'themes'
    | 'demographics';

/**
 * Order by magazine data
 */
export type magazines_query_orderby = 'mal_id' | 'name' | 'count';

/**
 * User's anime list status filter options
 */
export type user_manga_list_status_filter =
    | 'all'
    | 'reading'
    | 'completed'
    | 'onhold'
    | 'dropped'
    | 'plantoread';

/**
 * Available Manga order_by properties
 */
export type manga_search_query_orderby =
    | 'mal_id'
    | 'title'
    | 'start_date'
    | 'end_date'
    | 'chapters'
    | 'volumes'
    | 'score'
    | 'scored_by'
    | 'rank'
    | 'popularity'
    | 'members'
    | 'favorites';

/**
 * Available Manga statuses
 */
export type manga_search_query_status =
    | 'publishing'
    | 'complete'
    | 'hiatus'
    | 'discontinued'
    | 'upcoming';

/**
 * Available Manga types
 */
export type manga_search_query_type =
    | 'manga'
    | 'novel'
    | 'lightnovel'
    | 'oneshot'
    | 'doujin'
    | 'manhwa'
    | 'manhua';

/**
 * Available People order_by properties
 */
export type people_search_query_orderby =
    | 'mal_id'
    | 'name'
    | 'birthday'
    | 'favorites';

/**
 * Producers Search Query Order By
 */
export type producers_query_orderby =
    | 'mal_id'
    | 'count'
    | 'favorites'
    | 'established';

/**
 * Search query sort direction
 */
export type search_query_sort = 'desc' | 'asc';

/**
 * Top items filter types
 */
export type top_anime_filter =
    | 'airing'
    | 'upcoming'
    | 'bypopularity'
    | 'favorite';

/**
 * Top items filter types
 */
export type top_manga_filter =
    | 'publishing'
    | 'upcoming'
    | 'bypopularity'
    | 'favorite';

/**
 * The type of reviews to filter by. Defaults to anime.
 */
export type top_reviews_type_enum = 'anime' | 'manga';

/**
 * Anime Episodes Resource
 */
export type anime_episodes = {
    data?: Array<{
        /**
         * MyAnimeList ID
         */
        mal_id?: number;
        /**
         * MyAnimeList URL. This is the URL of the episode's video. If there is no video url, this will be null.
         */
        url?: string | null;
        /**
         * Title
         */
        title?: string;
        /**
         * Title Japanese
         */
        title_japanese?: string | null;
        /**
         * title_romanji
         */
        title_romanji?: string | null;
        /**
         * Aired Date ISO8601
         */
        aired?: string | null;
        /**
         * Aggregated episode score (1.00 - 5.00) based on MyAnimeList user voting
         */
        score?: number | null;
        /**
         * Filler episode
         */
        filler?: boolean;
        /**
         * Recap episode
         */
        recap?: boolean;
        /**
         * Episode discussion forum URL
         */
        forum_url?: string | null;
    }>;
} & pagination;

/**
 * Anime News Resource
 */
export type anime_news = pagination & news;

/**
 * Anime Videos Episodes Resource
 */
export type anime_videos_episodes = {
    data?: Array<{
        /**
         * MyAnimeList ID or Episode Number
         */
        mal_id?: number;
        /**
         * Episode Title
         */
        title?: string;
        /**
         * Episode Subtitle
         */
        episode?: string;
        /**
         * Episode Page URL
         */
        url?: string;
        images?: common_images;
    }>;
} & pagination;

/**
 * Character Pictures
 */
export type character_pictures = {
    data?: Array<{
        /**
         * Default JPG Image Size URL
         */
        image_url?: string | null;
        /**
         * Large JPG Image Size URL
         */
        large_image_url?: string | null;
    }>;
};

/**
 * Club Member
 */
export type club_member = {
    data?: Array<{
        /**
         * User's username
         */
        username?: string;
        /**
         * User URL
         */
        url?: string;
        images?: user_images;
    }>;
};

/**
 * Manga News Resource
 */
export type manga_news = pagination & news;

/**
 * Manga Pictures
 */
export type manga_pictures = {
    data?: Array<manga_images>;
};

/**
 * Character Pictures
 */
export type person_pictures = {
    data?: Array<people_images>;
};

/**
 * Random Resources
 */
export type random = {
    data?: Array<anime | manga | character | person>;
};

/**
 * Anime resources currently airing
 */
export type schedules = {
    data?: Array<anime>;
} & pagination_plus;

/**
 * User Results
 */
export type users_search = {
    data?: Array<{
        /**
         * MyAnimeList URL
         */
        url?: string;
        /**
         * MyAnimeList Username
         */
        username?: string;
        images?: user_images;
        /**
         * Last Online Date ISO8601
         */
        last_online?: string;
    }>;
} & pagination;

/**
 * List of available seasons
 */
export type seasons = {
    data?: Array<{
        /**
         * Year
         */
        year?: number;
        /**
         * List of available seasons
         */
        seasons?: Array<string>;
    }>;
};

/**
 * Anime & Manga Reviews Resource
 */
export type reviews_collection = {
    data?: Array<anime_review | manga_review>;
};

/**
 * User Friends
 */
export type user_friends = {
    data?: Array<
        {
            user?: user_meta;
        } & {
            /**
             * Last Online Date ISO8601 format
             */
            last_online?: string;
            /**
             * Friends Since Date ISO8601 format
             */
            friends_since?: string;
        }
    >;
} & pagination;

/**
 * User Clubs
 */
export type user_clubs = {
    data?: Array<{
        /**
         * MyAnimeList ID
         */
        mal_id?: number;
        /**
         * Club Name
         */
        name?: string;
        /**
         * Club URL
         */
        url?: string;
    }>;
} & pagination;

/**
 * Watch Episodes
 */
export type watch_episodes = {
    data?: Array<{
        entry?: anime_meta;
        /**
         * Recent Episodes (max 2 listed)
         */
        episodes?: Array<{
            /**
             * MyAnimeList ID
             */
            mal_id?: string;
            /**
             * MyAnimeList URL
             */
            url?: string;
            /**
             * Episode Title
             */
            title?: string;
            /**
             * For MyAnimeList Premium Users
             */
            premium?: boolean;
        }>;
        /**
         * Region Locked Episode
         */
        region_locked?: boolean;
    }>;
} & pagination;

/**
 * Watch Promos
 */
export type watch_promos = pagination & {
    /**
     * Promo Title
     */
    title?: string;
} & {
    data?: Array<{
        entry?: anime_meta;
        trailer?: Array<trailer>;
    }>;
};

/**
 * Anime Characters Resource
 */
export type anime_characters = {
    data?: Array<{
        /**
         * Character details
         */
        character?: {
            /**
             * MyAnimeList ID
             */
            mal_id?: number;
            /**
             * MyAnimeList URL
             */
            url?: string;
            images?: character_images;
            /**
             * Character Name
             */
            name?: string;
        };
        /**
         * Character's Role
         */
        role?: string;
        voice_actors?: Array<{
            person?: {
                mal_id?: number;
                url?: string;
                images?: people_images;
                name?: string;
            };
            language?: string;
        }>;
    }>;
};

/**
 * Anime Collection Resource
 */
export type anime_search = {
    data?: Array<anime>;
} & pagination_plus;

/**
 * Anime Episode Resource
 */
export type anime_episode = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * MyAnimeList URL
     */
    url?: string;
    /**
     * Title
     */
    title?: string;
    /**
     * Title Japanese
     */
    title_japanese?: string | null;
    /**
     * title_romanji
     */
    title_romanji?: string | null;
    /**
     * Episode duration in seconds
     */
    duration?: number | null;
    /**
     * Aired Date ISO8601
     */
    aired?: string | null;
    /**
     * Filler episode
     */
    filler?: boolean;
    /**
     * Recap episode
     */
    recap?: boolean;
    /**
     * Episode Synopsis
     */
    synopsis?: string | null;
};

/**
 * Full anime Resource
 */
export type anime_full = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * MyAnimeList URL
     */
    url?: string;
    images?: anime_images;
    trailer?: trailer_base;
    /**
     * Whether the entry is pending approval on MAL or not
     */
    approved?: boolean;
    /**
     * All titles
     */
    titles?: Array<title>;
    /**
     * Title
     * @deprecated
     */
    title?: string;
    /**
     * English Title
     * @deprecated
     */
    title_english?: string | null;
    /**
     * Japanese Title
     * @deprecated
     */
    title_japanese?: string | null;
    /**
     * Other Titles
     * @deprecated
     */
    title_synonyms?: Array<string>;
    /**
     * Anime Type
     */
    type?: 'TV' | 'OVA' | 'Movie' | 'Special' | 'ONA' | 'Music' | null;
    /**
     * Original Material/Source adapted from
     */
    source?: string | null;
    /**
     * Episode count
     */
    episodes?: number | null;
    /**
     * Airing status
     */
    status?: 'Finished Airing' | 'Currently Airing' | 'Not yet aired' | null;
    /**
     * Airing boolean
     */
    airing?: boolean;
    aired?: daterange;
    /**
     * Parsed raw duration
     */
    duration?: string | null;
    /**
     * Anime audience rating
     */
    rating?:
        | 'G - All Ages'
        | 'PG - Children'
        | 'PG-13 - Teens 13 or older'
        | 'R - 17+ (violence & profanity)'
        | 'R+ - Mild Nudity'
        | 'Rx - Hentai'
        | null;
    /**
     * Score
     */
    score?: number | null;
    /**
     * Number of users
     */
    scored_by?: number | null;
    /**
     * Ranking
     */
    rank?: number | null;
    /**
     * Popularity
     */
    popularity?: number | null;
    /**
     * Number of users who have added this entry to their list
     */
    members?: number | null;
    /**
     * Number of users who have favorited this entry
     */
    favorites?: number | null;
    /**
     * Synopsis
     */
    synopsis?: string | null;
    /**
     * Background
     */
    background?: string | null;
    /**
     * Season
     */
    season?: 'summer' | 'winter' | 'spring' | 'fall' | null;
    /**
     * Year
     */
    year?: number | null;
    broadcast?: broadcast;
    producers?: Array<mal_url>;
    licensors?: Array<mal_url>;
    studios?: Array<mal_url>;
    genres?: Array<mal_url>;
    explicit_genres?: Array<mal_url>;
    themes?: Array<mal_url>;
    demographics?: Array<mal_url>;
    relations?: Array<{
        /**
         * Relation type
         */
        relation?: string;
        entry?: Array<mal_url>;
    }>;
    theme?: {
        openings?: Array<string>;
        endings?: Array<string>;
    };
    external?: Array<{
        name?: string;
        url?: string;
    }>;
    streaming?: Array<{
        name?: string;
        url?: string;
    }>;
};

/**
 * Anime Type
 */
export type type = 'TV' | 'OVA' | 'Movie' | 'Special' | 'ONA' | 'Music';

/**
 * Airing status
 */
export type status = 'Finished Airing' | 'Currently Airing' | 'Not yet aired';

/**
 * Anime audience rating
 */
export type rating =
    | 'G - All Ages'
    | 'PG - Children'
    | 'PG-13 - Teens 13 or older'
    | 'R - 17+ (violence & profanity)'
    | 'R+ - Mild Nudity'
    | 'Rx - Hentai';

/**
 * Season
 */
export type season = 'summer' | 'winter' | 'spring' | 'fall';

/**
 * Anime Relations
 */
export type anime_relations = {
    data?: Array<{
        /**
         * Relation type
         */
        relation?: string;
        entry?: Array<mal_url>;
    }>;
};

/**
 * Anime Resource
 */
export type anime = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * MyAnimeList URL
     */
    url?: string;
    images?: anime_images;
    trailer?: trailer_base;
    /**
     * Whether the entry is pending approval on MAL or not
     */
    approved?: boolean;
    /**
     * All titles
     */
    titles?: Array<title>;
    /**
     * Title
     * @deprecated
     */
    title?: string;
    /**
     * English Title
     * @deprecated
     */
    title_english?: string | null;
    /**
     * Japanese Title
     * @deprecated
     */
    title_japanese?: string | null;
    /**
     * Other Titles
     * @deprecated
     */
    title_synonyms?: Array<string>;
    /**
     * Anime Type
     */
    type?: 'TV' | 'OVA' | 'Movie' | 'Special' | 'ONA' | 'Music' | null;
    /**
     * Original Material/Source adapted from
     */
    source?: string | null;
    /**
     * Episode count
     */
    episodes?: number | null;
    /**
     * Airing status
     */
    status?: 'Finished Airing' | 'Currently Airing' | 'Not yet aired' | null;
    /**
     * Airing boolean
     */
    airing?: boolean;
    aired?: daterange;
    /**
     * Parsed raw duration
     */
    duration?: string | null;
    /**
     * Anime audience rating
     */
    rating?:
        | 'G - All Ages'
        | 'PG - Children'
        | 'PG-13 - Teens 13 or older'
        | 'R - 17+ (violence & profanity)'
        | 'R+ - Mild Nudity'
        | 'Rx - Hentai'
        | null;
    /**
     * Score
     */
    score?: number | null;
    /**
     * Number of users
     */
    scored_by?: number | null;
    /**
     * Ranking
     */
    rank?: number | null;
    /**
     * Popularity
     */
    popularity?: number | null;
    /**
     * Number of users who have added this entry to their list
     */
    members?: number | null;
    /**
     * Number of users who have favorited this entry
     */
    favorites?: number | null;
    /**
     * Synopsis
     */
    synopsis?: string | null;
    /**
     * Background
     */
    background?: string | null;
    /**
     * Season
     */
    season?: 'summer' | 'winter' | 'spring' | 'fall' | null;
    /**
     * Year
     */
    year?: number | null;
    broadcast?: broadcast;
    producers?: Array<mal_url>;
    licensors?: Array<mal_url>;
    studios?: Array<mal_url>;
    genres?: Array<mal_url>;
    explicit_genres?: Array<mal_url>;
    themes?: Array<mal_url>;
    demographics?: Array<mal_url>;
};

/**
 * Anime Staff Resource
 */
export type anime_staff = {
    data?: Array<{
        /**
         * Person details
         */
        person?: {
            /**
             * MyAnimeList ID
             */
            mal_id?: number;
            /**
             * MyAnimeList URL
             */
            url?: string;
            images?: people_images;
            /**
             * Name
             */
            name?: string;
        };
        /**
         * Staff Positions
         */
        positions?: Array<string>;
    }>;
};

/**
 * Anime Statistics Resource
 */
export type anime_statistics = {
    data?: {
        /**
         * Number of users watching the resource
         */
        watching?: number;
        /**
         * Number of users who have completed the resource
         */
        completed?: number;
        /**
         * Number of users who have put the resource on hold
         */
        on_hold?: number;
        /**
         * Number of users who have dropped the resource
         */
        dropped?: number;
        /**
         * Number of users who have planned to watch the resource
         */
        plan_to_watch?: number;
        /**
         * Total number of users who have the resource added to their lists
         */
        total?: number;
        scores?: Array<{
            /**
             * Scoring value
             */
            score?: number;
            /**
             * Number of votes for this score
             */
            votes?: number;
            /**
             * Percentage of votes for this score
             */
            percentage?: number;
        }>;
    };
};

/**
 * Anime Opening and Ending Themes
 */
export type anime_themes = {
    data?: {
        openings?: Array<string>;
        endings?: Array<string>;
    };
};

/**
 * Anime Videos Resource
 */
export type anime_videos = {
    data?: {
        promo?: Array<{
            /**
             * Title
             */
            title?: string;
            trailer?: trailer;
        }>;
        episodes?: Array<{
            /**
             * MyAnimeList ID
             */
            mal_id?: number;
            /**
             * MyAnimeList URL
             */
            url?: string;
            /**
             * Title
             */
            title?: string;
            /**
             * Episode
             */
            episode?: string;
            images?: common_images;
        }>;
        music_videos?: Array<{
            /**
             * Title
             */
            title?: string;
            video?: trailer;
            meta?: {
                title?: string | null;
                author?: string | null;
            };
        }>;
    };
};

/**
 * Character casted in anime
 */
export type character_anime = {
    data?: Array<{
        /**
         * Character's Role
         */
        role?: string;
        anime?: anime_meta;
    }>;
};

/**
 * Characters Search Resource
 */
export type characters_search = {
    data?: Array<character>;
} & pagination_plus;

/**
 * Character Resource
 */
export type character_full = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * MyAnimeList URL
     */
    url?: string;
    images?: character_images;
    /**
     * Name
     */
    name?: string;
    /**
     * Name
     */
    name_kanji?: string | null;
    /**
     * Other Names
     */
    nicknames?: Array<string>;
    /**
     * Number of users who have favorited this entry
     */
    favorites?: number;
    /**
     * Biography
     */
    about?: string | null;
    anime?: Array<{
        /**
         * Character's Role
         */
        role?: string;
        anime?: anime_meta;
    }>;
    manga?: Array<{
        /**
         * Character's Role
         */
        role?: string;
        manga?: manga_meta;
    }>;
    voices?: Array<{
        /**
         * Character's Role
         */
        language?: string;
        person?: person_meta;
    }>;
};

/**
 * Character casted in manga
 */
export type character_manga = {
    data?: Array<{
        /**
         * Character's Role
         */
        role?: string;
        manga?: manga_meta;
    }>;
};

/**
 * Character Resource
 */
export type character = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * MyAnimeList URL
     */
    url?: string;
    images?: character_images;
    /**
     * Name
     */
    name?: string;
    /**
     * Name
     */
    name_kanji?: string | null;
    /**
     * Other Names
     */
    nicknames?: Array<string>;
    /**
     * Number of users who have favorited this entry
     */
    favorites?: number;
    /**
     * Biography
     */
    about?: string | null;
};

/**
 * Character voice actors
 */
export type character_voice_actors = {
    data?: Array<{
        /**
         * Character's Role
         */
        language?: string;
        person?: person_meta;
    }>;
};

/**
 * Clubs Search Resource
 */
export type clubs_search = {
    data?: Array<club>;
} & pagination;

/**
 * Club Relations
 */
export type club_relations = {
    data?: {
        anime?: Array<mal_url>;
        manga?: Array<mal_url>;
        characters?: Array<mal_url>;
    };
};

/**
 * Club Resource
 */
export type club = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * Club name
     */
    name?: string;
    /**
     * Club URL
     */
    url?: string;
    images?: common_images;
    /**
     * Number of club members
     */
    members?: number;
    /**
     * Club Category
     */
    category?:
        | 'actors & artists'
        | 'anime'
        | 'characters'
        | 'cities & neighborhoods'
        | 'companies'
        | 'conventions'
        | 'games'
        | 'japan'
        | 'manga'
        | 'music'
        | 'others'
        | 'schools';
    /**
     * Date Created ISO8601
     */
    created?: string;
    /**
     * Club access
     */
    access?: 'public' | 'private' | 'secret';
};

/**
 * Club Category
 */
export type category =
    | 'actors & artists'
    | 'anime'
    | 'characters'
    | 'cities & neighborhoods'
    | 'companies'
    | 'conventions'
    | 'games'
    | 'japan'
    | 'manga'
    | 'music'
    | 'others'
    | 'schools';

/**
 * Club access
 */
export type access = 'public' | 'private' | 'secret';

/**
 * Club Staff Resource
 */
export type club_staff = {
    data?: Array<{
        /**
         * User URL
         */
        url?: string;
        /**
         * User's username
         */
        username?: string;
    }>;
};

/**
 * Youtube Details
 */
export type trailer = trailer_base & trailer_images;

/**
 * Youtube Details
 */
export type trailer_base = {
    /**
     * YouTube ID
     */
    youtube_id?: string | null;
    /**
     * YouTube URL
     */
    url?: string | null;
    /**
     * Parsed Embed URL
     */
    embed_url?: string | null;
};

/**
 * Youtube Images
 */
export type trailer_images = {
    images?: {
        /**
         * Default Image Size URL (120x90)
         */
        image_url?: string | null;
        /**
         * Small Image Size URL (640x480)
         */
        small_image_url?: string | null;
        /**
         * Medium Image Size URL (320x180)
         */
        medium_image_url?: string | null;
        /**
         * Large Image Size URL (480x360)
         */
        large_image_url?: string | null;
        /**
         * Maximum Image Size URL (1280x720)
         */
        maximum_image_url?: string | null;
    };
};

/**
 * Date range
 */
export type daterange = {
    /**
     * Date ISO8601
     */
    from?: string | null;
    /**
     * Date ISO8601
     */
    to?: string | null;
    /**
     * Date Prop
     */
    prop?: {
        /**
         * Date Prop From
         */
        from?: {
            /**
             * Day
             */
            day?: number | null;
            /**
             * Month
             */
            month?: number | null;
            /**
             * Year
             */
            year?: number | null;
        };
        /**
         * Date Prop To
         */
        to?: {
            /**
             * Day
             */
            day?: number | null;
            /**
             * Month
             */
            month?: number | null;
            /**
             * Year
             */
            year?: number | null;
        };
        /**
         * Raw parsed string
         */
        string?: string | null;
    };
};

/**
 * Broadcast Details
 */
export type broadcast = {
    /**
     * Day of the week
     */
    day?: string | null;
    /**
     * Time in 24 hour format
     */
    time?: string | null;
    /**
     * Timezone (Tz Database format https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)
     */
    timezone?: string | null;
    /**
     * Raw parsed broadcast string
     */
    string?: string | null;
};

/**
 * Parsed URL Data
 */
export type mal_url = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * Type of resource
     */
    type?: string;
    /**
     * Resource Name/Title
     */
    name?: string;
    /**
     * MyAnimeList URL
     */
    url?: string;
};

/**
 * Parsed URL Data
 */
export type mal_url_2 = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * Type of resource
     */
    type?: string;
    /**
     * Resource Name/Title
     */
    title?: string;
    /**
     * MyAnimeList URL
     */
    url?: string;
};

/**
 * Entry Meta data
 */
export type entry_meta = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * MyAnimeList URL
     */
    url?: string;
    /**
     * Image URL
     */
    image_url?: string;
    /**
     * Entry Name/Title
     */
    name?: string;
};

/**
 * Related resources
 */
export type relation = {
    /**
     * Relation type
     */
    relation?: string;
    /**
     * Related entries
     */
    entry?: Array<mal_url>;
};

export type pagination = {
    pagination?: {
        last_visible_page?: number;
        has_next_page?: boolean;
    };
};

export type pagination_plus = {
    pagination?: {
        last_visible_page?: number;
        has_next_page?: boolean;
        items?: {
            count?: number;
            total?: number;
            per_page?: number;
        };
    };
};

export type user_meta = {
    /**
     * MyAnimeList Username
     */
    username?: string;
    /**
     * MyAnimeList Profile URL
     */
    url?: string;
    images?: user_images;
};

/**
 * User Meta By ID
 */
export type user_by_id = {
    /**
     * MyAnimeList URL
     */
    url?: string;
    /**
     * MyAnimeList Username
     */
    username?: string;
};

export type user_images = {
    /**
     * Available images in JPG
     */
    jpg?: {
        /**
         * Image URL JPG
         */
        image_url?: string | null;
    };
    /**
     * Available images in WEBP
     */
    webp?: {
        /**
         * Image URL WEBP
         */
        image_url?: string | null;
    };
};

export type anime_meta = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * MyAnimeList URL
     */
    url?: string;
    images?: anime_images;
    /**
     * Entry title
     */
    title?: string;
};

export type manga_meta = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * MyAnimeList URL
     */
    url?: string;
    images?: manga_images;
    /**
     * Entry title
     */
    title?: string;
};

export type character_meta = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * MyAnimeList URL
     */
    url?: string;
    images?: character_images;
    /**
     * Entry name
     */
    name?: string;
};

export type person_meta = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * MyAnimeList URL
     */
    url?: string;
    images?: people_images;
    /**
     * Entry name
     */
    name?: string;
};

export type anime_images = {
    /**
     * Available images in JPG
     */
    jpg?: {
        /**
         * Image URL JPG
         */
        image_url?: string | null;
        /**
         * Small Image URL JPG
         */
        small_image_url?: string | null;
        /**
         * Image URL JPG
         */
        large_image_url?: string | null;
    };
    /**
     * Available images in WEBP
     */
    webp?: {
        /**
         * Image URL WEBP
         */
        image_url?: string | null;
        /**
         * Small Image URL WEBP
         */
        small_image_url?: string | null;
        /**
         * Image URL WEBP
         */
        large_image_url?: string | null;
    };
};

export type manga_images = {
    /**
     * Available images in JPG
     */
    jpg?: {
        /**
         * Image URL JPG
         */
        image_url?: string | null;
        /**
         * Small Image URL JPG
         */
        small_image_url?: string | null;
        /**
         * Image URL JPG
         */
        large_image_url?: string | null;
    };
    /**
     * Available images in WEBP
     */
    webp?: {
        /**
         * Image URL WEBP
         */
        image_url?: string | null;
        /**
         * Small Image URL WEBP
         */
        small_image_url?: string | null;
        /**
         * Image URL WEBP
         */
        large_image_url?: string | null;
    };
};

export type character_images = {
    /**
     * Available images in JPG
     */
    jpg?: {
        /**
         * Image URL JPG
         */
        image_url?: string | null;
        /**
         * Small Image URL JPG
         */
        small_image_url?: string | null;
    };
    /**
     * Available images in WEBP
     */
    webp?: {
        /**
         * Image URL WEBP
         */
        image_url?: string | null;
        /**
         * Small Image URL WEBP
         */
        small_image_url?: string | null;
    };
};

export type people_images = {
    /**
     * Available images in JPG
     */
    jpg?: {
        /**
         * Image URL JPG
         */
        image_url?: string | null;
    };
};

export type common_images = {
    /**
     * Available images in JPG
     */
    jpg?: {
        /**
         * Image URL JPG
         */
        image_url?: string | null;
    };
};

export type title = {
    /**
     * Title type
     */
    type?: string;
    /**
     * Title value
     */
    title?: string;
};

/**
 * External links
 */
export type external_links = {
    data?: Array<{
        name?: string;
        url?: string;
    }>;
};

/**
 * Forum Resource
 */
export type forum = {
    data?: Array<{
        /**
         * MyAnimeList ID
         */
        mal_id?: number;
        /**
         * MyAnimeList URL
         */
        url?: string;
        /**
         * Title
         */
        title?: string;
        /**
         * Post Date ISO8601
         */
        date?: string;
        /**
         * Author MyAnimeList Username
         */
        author_username?: string;
        /**
         * Author Profile URL
         */
        author_url?: string;
        /**
         * Comment count
         */
        comments?: number;
        /**
         * Last comment details
         */
        last_comment?: {
            /**
             * Last comment URL
             */
            url?: string;
            /**
             * Author MyAnimeList Username
             */
            author_username?: string;
            /**
             * Author Profile URL
             */
            author_url?: string;
            /**
             * Last comment date posted ISO8601
             */
            date?: string | null;
        };
    }>;
};

/**
 * Genres Collection Resource
 */
export type genres = {
    data?: Array<genre>;
};

/**
 * Genre Resource
 */
export type genre = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * Genre Name
     */
    name?: string;
    /**
     * MyAnimeList URL
     */
    url?: string;
    /**
     * Genre's entry count
     */
    count?: number;
};

/**
 * Magazine Collection Resource
 */
export type magazines = {
    data?: Array<magazine>;
} & pagination;

/**
 * Magazine Resource
 */
export type magazine = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * Magazine Name
     */
    name?: string;
    /**
     * MyAnimeList URL
     */
    url?: string;
    /**
     * Magazine's manga count
     */
    count?: number;
};

/**
 * Manga Characters Resource
 */
export type manga_characters = {
    data?: Array<{
        character?: character_meta;
        /**
         * Character's Role
         */
        role?: string;
    }>;
};

/**
 * Manga Search Resource
 */
export type manga_search = {
    data?: Array<manga>;
} & pagination_plus;

/**
 * Manga Resource
 */
export type manga_full = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * MyAnimeList URL
     */
    url?: string;
    images?: manga_images;
    /**
     * Whether the entry is pending approval on MAL or not
     */
    approved?: boolean;
    /**
     * All Titles
     */
    titles?: Array<title>;
    /**
     * Title
     * @deprecated
     */
    title?: string;
    /**
     * English Title
     * @deprecated
     */
    title_english?: string | null;
    /**
     * Japanese Title
     * @deprecated
     */
    title_japanese?: string | null;
    /**
     * Other Titles
     * @deprecated
     */
    title_synonyms?: Array<string>;
    /**
     * Manga Type
     */
    type?:
        | 'Manga'
        | 'Novel'
        | 'Light Novel'
        | 'One-shot'
        | 'Doujinshi'
        | 'Manhua'
        | 'Manhwa'
        | 'OEL'
        | null;
    /**
     * Chapter count
     */
    chapters?: number | null;
    /**
     * Volume count
     */
    volumes?: number | null;
    /**
     * Publishing status
     */
    status?:
        | 'Finished'
        | 'Publishing'
        | 'On Hiatus'
        | 'Discontinued'
        | 'Not yet published';
    /**
     * Publishing boolean
     */
    publishing?: boolean;
    published?: daterange;
    /**
     * Score
     */
    score?: number | null;
    /**
     * Number of users
     */
    scored_by?: number | null;
    /**
     * Ranking
     */
    rank?: number | null;
    /**
     * Popularity
     */
    popularity?: number | null;
    /**
     * Number of users who have added this entry to their list
     */
    members?: number | null;
    /**
     * Number of users who have favorited this entry
     */
    favorites?: number | null;
    /**
     * Synopsis
     */
    synopsis?: string | null;
    /**
     * Background
     */
    background?: string | null;
    authors?: Array<mal_url>;
    serializations?: Array<mal_url>;
    genres?: Array<mal_url>;
    explicit_genres?: Array<mal_url>;
    themes?: Array<mal_url>;
    demographics?: Array<mal_url>;
    relations?: Array<{
        /**
         * Relation type
         */
        relation?: string;
        entry?: Array<mal_url>;
    }>;
    external?: Array<{
        name?: string;
        url?: string;
    }>;
};

/**
 * Manga Type
 */
export type type2 =
    | 'Manga'
    | 'Novel'
    | 'Light Novel'
    | 'One-shot'
    | 'Doujinshi'
    | 'Manhua'
    | 'Manhwa'
    | 'OEL';

/**
 * Publishing status
 */
export type status2 =
    | 'Finished'
    | 'Publishing'
    | 'On Hiatus'
    | 'Discontinued'
    | 'Not yet published';

/**
 * Manga Resource
 */
export type manga = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * MyAnimeList URL
     */
    url?: string;
    images?: manga_images;
    /**
     * Whether the entry is pending approval on MAL or not
     */
    approved?: boolean;
    /**
     * All Titles
     */
    titles?: Array<title>;
    /**
     * Title
     * @deprecated
     */
    title?: string;
    /**
     * English Title
     * @deprecated
     */
    title_english?: string | null;
    /**
     * Japanese Title
     * @deprecated
     */
    title_japanese?: string | null;
    /**
     * Manga Type
     */
    type?:
        | 'Manga'
        | 'Novel'
        | 'Light Novel'
        | 'One-shot'
        | 'Doujinshi'
        | 'Manhua'
        | 'Manhwa'
        | 'OEL'
        | null;
    /**
     * Chapter count
     */
    chapters?: number | null;
    /**
     * Volume count
     */
    volumes?: number | null;
    /**
     * Publishing status
     */
    status?:
        | 'Finished'
        | 'Publishing'
        | 'On Hiatus'
        | 'Discontinued'
        | 'Not yet published';
    /**
     * Publishing boolean
     */
    publishing?: boolean;
    published?: daterange;
    /**
     * Score
     */
    score?: number | null;
    /**
     * Number of users
     */
    scored_by?: number | null;
    /**
     * Ranking
     */
    rank?: number | null;
    /**
     * Popularity
     */
    popularity?: number | null;
    /**
     * Number of users who have added this entry to their list
     */
    members?: number | null;
    /**
     * Number of users who have favorited this entry
     */
    favorites?: number | null;
    /**
     * Synopsis
     */
    synopsis?: string | null;
    /**
     * Background
     */
    background?: string | null;
    authors?: Array<mal_url>;
    serializations?: Array<mal_url>;
    genres?: Array<mal_url>;
    explicit_genres?: Array<mal_url>;
    themes?: Array<mal_url>;
    demographics?: Array<mal_url>;
};

/**
 * Manga Statistics Resource
 */
export type manga_statistics = {
    data?: {
        /**
         * Number of users reading the resource
         */
        reading?: number;
        /**
         * Number of users who have completed the resource
         */
        completed?: number;
        /**
         * Number of users who have put the resource on hold
         */
        on_hold?: number;
        /**
         * Number of users who have dropped the resource
         */
        dropped?: number;
        /**
         * Number of users who have planned to read the resource
         */
        plan_to_read?: number;
        /**
         * Total number of users who have the resource added to their lists
         */
        total?: number;
        scores?: Array<{
            /**
             * Scoring value
             */
            score?: number;
            /**
             * Number of votes for this score
             */
            votes?: number;
            /**
             * Percentage of votes for this score
             */
            percentage?: number;
        }>;
    };
};

/**
 * More Info Resource
 */
export type moreinfo = {
    data?: {
        /**
         * Additional information on the entry
         */
        moreinfo?: string | null;
    };
};

export type news = {
    data?: Array<{
        /**
         * MyAnimeList ID
         */
        mal_id?: number;
        /**
         * MyAnimeList URL
         */
        url?: string;
        /**
         * Title
         */
        title?: string;
        /**
         * Post Date ISO8601
         */
        date?: string;
        /**
         * Author MyAnimeList Username
         */
        author_username?: string;
        /**
         * Author Profile URL
         */
        author_url?: string;
        /**
         * Forum topic URL
         */
        forum_url?: string;
        images?: common_images;
        /**
         * Comment count
         */
        comments?: number;
        /**
         * Excerpt
         */
        excerpt?: string;
    }>;
};

/**
 * Person anime staff positions
 */
export type person_anime = {
    data?: Array<{
        /**
         * Person's position
         */
        position?: string;
        anime?: anime_meta;
    }>;
};

/**
 * People Search
 */
export type people_search = {
    data?: Array<person>;
} & pagination_plus;

/**
 * Person Resource
 */
export type person_full = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * MyAnimeList URL
     */
    url?: string;
    /**
     * Person's website URL
     */
    website_url?: string | null;
    images?: people_images;
    /**
     * Name
     */
    name?: string;
    /**
     * Given Name
     */
    given_name?: string | null;
    /**
     * Family Name
     */
    family_name?: string | null;
    /**
     * Other Names
     */
    alternate_names?: Array<string>;
    /**
     * Birthday Date ISO8601
     */
    birthday?: string | null;
    /**
     * Number of users who have favorited this entry
     */
    favorites?: number;
    /**
     * Biography
     */
    about?: string | null;
    anime?: Array<{
        /**
         * Person's position
         */
        position?: string;
        anime?: anime_meta;
    }>;
    manga?: Array<{
        /**
         * Person's position
         */
        position?: string;
        manga?: manga_meta;
    }>;
    voices?: Array<{
        /**
         * Person's Character's role in the anime
         */
        role?: string;
        anime?: anime_meta;
        character?: character_meta;
    }>;
};

/**
 * Person's mangaography
 */
export type person_manga = {
    data?: Array<{
        /**
         * Person's position
         */
        position?: string;
        manga?: manga_meta;
    }>;
};

/**
 * Person Resource
 */
export type person = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * MyAnimeList URL
     */
    url?: string;
    /**
     * Person's website URL
     */
    website_url?: string | null;
    images?: people_images;
    /**
     * Name
     */
    name?: string;
    /**
     * Given Name
     */
    given_name?: string | null;
    /**
     * Family Name
     */
    family_name?: string | null;
    /**
     * Other Names
     */
    alternate_names?: Array<string>;
    /**
     * Birthday Date ISO8601
     */
    birthday?: string | null;
    /**
     * Number of users who have favorited this entry
     */
    favorites?: number;
    /**
     * Biography
     */
    about?: string | null;
};

/**
 * Person's voice acting roles
 */
export type person_voice_acting_roles = {
    data?: Array<{
        /**
         * Person's Character's role in the anime
         */
        role?: string;
        anime?: anime_meta;
        character?: character_meta;
    }>;
};

/**
 * Pictures Resource
 */
export type pictures = {
    data?: Array<{
        images?: anime_images;
    }>;
};

/**
 * Pictures Resource
 */
export type pictures_variants = {
    data?: Array<{
        images?: common_images;
    }>;
};

/**
 * Producers Collection Resource
 */
export type producers = {
    data?: Array<producer>;
} & pagination;

/**
 * Producers Resource
 */
export type producer_full = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * MyAnimeList URL
     */
    url?: string;
    /**
     * All titles
     */
    titles?: Array<title>;
    images?: common_images;
    /**
     * Producers's member favorites count
     */
    favorites?: number;
    /**
     * Producers's anime count
     */
    count?: number;
    /**
     * Established Date ISO8601
     */
    established?: string | null;
    /**
     * About the Producer
     */
    about?: string | null;
    external?: Array<{
        name?: string;
        url?: string;
    }>;
};

/**
 * Producers Resource
 */
export type producer = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * MyAnimeList URL
     */
    url?: string;
    /**
     * All titles
     */
    titles?: Array<title>;
    images?: common_images;
    /**
     * Producers's member favorites count
     */
    favorites?: number;
    /**
     * Producers's anime count
     */
    count?: number;
    /**
     * Established Date ISO8601
     */
    established?: string | null;
    /**
     * About the Producer
     */
    about?: string | null;
};

export type user_about = {
    data?: Array<{
        /**
         * User About. NOTE: About information is customizable by users through BBCode on MyAnimeList. This means users can add multimedia content, different text sizes, etc. Due to this freeform, Jikan returns parsed HTML. Validate on your end!
         */
        about?: string | null;
    }>;
};

export type user_favorites = {
    /**
     * Favorite Anime
     */
    anime?: Array<
        {
            type?: string;
            start_year?: number;
        } & anime_meta
    >;
    /**
     * Favorite Manga
     */
    manga?: Array<
        {
            type?: string;
            start_year?: number;
        } & manga_meta
    >;
    /**
     * Favorite Characters
     */
    characters?: Array<character_meta & mal_url_2>;
    /**
     * Favorite People
     */
    people?: Array<character_meta>;
};

/**
 * Transform the resource into an array.
 */
export type user_profile_full = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number | null;
    /**
     * MyAnimeList Username
     */
    username?: string;
    /**
     * MyAnimeList URL
     */
    url?: string;
    images?: user_images;
    /**
     * Last Online Date ISO8601
     */
    last_online?: string | null;
    /**
     * User Gender
     */
    gender?: string | null;
    /**
     * Birthday Date ISO8601
     */
    birthday?: string | null;
    /**
     * Location
     */
    location?: string | null;
    /**
     * Joined Date ISO8601
     */
    joined?: string | null;
    statistics?: {
        /**
         * Anime Statistics
         */
        anime?: {
            /**
             * Number of days spent watching Anime
             */
            days_watched?: number;
            /**
             * Mean Score
             */
            mean_score?: number;
            /**
             * Anime Watching
             */
            watching?: number;
            /**
             * Anime Completed
             */
            completed?: number;
            /**
             * Anime On-Hold
             */
            on_hold?: number;
            /**
             * Anime Dropped
             */
            dropped?: number;
            /**
             * Anime Planned to Watch
             */
            plan_to_watch?: number;
            /**
             * Total Anime entries on User list
             */
            total_entries?: number;
            /**
             * Anime re-watched
             */
            rewatched?: number;
            /**
             * Number of Anime Episodes Watched
             */
            episodes_watched?: number;
        };
        /**
         * Manga Statistics
         */
        manga?: {
            /**
             * Number of days spent reading Manga
             */
            days_read?: number;
            /**
             * Mean Score
             */
            mean_score?: number;
            /**
             * Manga Reading
             */
            reading?: number;
            /**
             * Manga Completed
             */
            completed?: number;
            /**
             * Manga On-Hold
             */
            on_hold?: number;
            /**
             * Manga Dropped
             */
            dropped?: number;
            /**
             * Manga Planned to Read
             */
            plan_to_read?: number;
            /**
             * Total Manga entries on User list
             */
            total_entries?: number;
            /**
             * Manga re-read
             */
            reread?: number;
            /**
             * Number of Manga Chapters Read
             */
            chapters_read?: number;
            /**
             * Number of Manga Volumes Read
             */
            volumes_read?: number;
        };
    };
    external?: Array<{
        name?: string;
        url?: string;
    }>;
};

export type user_history = {
    data?: Array<history>;
};

/**
 * Transform the resource into an array.
 */
export type history = {
    entry?: mal_url;
    /**
     * Number of episodes/chapters watched/read
     */
    increment?: number;
    /**
     * Date ISO8601
     */
    date?: string;
};

export type user_updates = {
    data?: {
        /**
         * Last updated Anime
         */
        anime?: Array<
            {
                entry?: anime_meta;
            } & {
                score?: number | null;
                status?: string;
                episodes_seen?: number | null;
                episodes_total?: number | null;
                /**
                 * ISO8601 format
                 */
                date?: string;
            }
        >;
        /**
         * Last updated Manga
         */
        manga?: Array<
            {
                entry?: manga_meta;
            } & {
                score?: number | null;
                status?: string;
                chapters_read?: number | null;
                chapters_total?: number | null;
                volumes_read?: number | null;
                volumes_total?: number | null;
                /**
                 * ISO8601 format
                 */
                date?: string;
            }
        >;
    };
};

export type user_profile = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number | null;
    /**
     * MyAnimeList Username
     */
    username?: string;
    /**
     * MyAnimeList URL
     */
    url?: string;
    images?: user_images;
    /**
     * Last Online Date ISO8601
     */
    last_online?: string | null;
    /**
     * User Gender
     */
    gender?: string | null;
    /**
     * Birthday Date ISO8601
     */
    birthday?: string | null;
    /**
     * Location
     */
    location?: string | null;
    /**
     * Joined Date ISO8601
     */
    joined?: string | null;
};

/**
 * Transform the resource into an array.
 */
export type users_temp = {
    data?: Array<{
        /**
         * MyAnimeList ID
         */
        mal_id?: number;
        /**
         * MyAnimeList Username
         */
        username?: string;
        /**
         * MyAnimeList URL
         */
        url?: string;
        /**
         * Images
         */
        images?: {
            /**
             * Available images in JPG
             */
            jpg?: {
                /**
                 * Image URL JPG (225x335)
                 */
                image_url?: string;
            };
            /**
             * Available images in WEBP
             */
            webp?: {
                /**
                 * Image URL WEBP (225x335)
                 */
                image_url?: string;
            };
        };
        /**
         * Last Online Date ISO8601
         */
        last_online?: string;
        /**
         * User Gender
         */
        gender?: string;
        /**
         * Birthday Date ISO8601
         */
        birthday?: string;
        /**
         * Location
         */
        location?: string;
        /**
         * Joined Date ISO8601
         */
        joined?: string;
        /**
         * Anime Stats
         */
        anime_stats?: {
            /**
             * Number of days spent watching Anime
             */
            days_watched?: number;
            /**
             * Mean Score
             */
            mean_score?: number;
            /**
             * Anime Watching
             */
            watching?: number;
            /**
             * Anime Completed
             */
            completed?: number;
            /**
             * Anime On-Hold
             */
            on_hold?: number;
            /**
             * Anime Dropped
             */
            dropped?: number;
            /**
             * Anime Planned to Watch
             */
            plan_to_watch?: number;
            /**
             * Total Anime entries on User list
             */
            total_entries?: number;
            /**
             * Anime re-watched
             */
            rewatched?: number;
            /**
             * Number of Anime Episodes Watched
             */
            episodes_watched?: number;
        };
        /**
         * Manga Stats
         */
        manga_stats?: {
            /**
             * Number of days spent reading Manga
             */
            days_read?: number;
            /**
             * Mean Score
             */
            mean_score?: number;
            /**
             * Manga Reading
             */
            reading?: number;
            /**
             * Manga Completed
             */
            completed?: number;
            /**
             * Manga On-Hold
             */
            on_hold?: number;
            /**
             * Manga Dropped
             */
            dropped?: number;
            /**
             * Manga Planned to Read
             */
            plan_to_read?: number;
            /**
             * Total Manga entries on User list
             */
            total_entries?: number;
            /**
             * Manga re-read
             */
            reread?: number;
            /**
             * Number of Manga Chapters Read
             */
            chapters_read?: number;
            /**
             * Number of Manga Volumes Read
             */
            volumes_read?: number;
        };
        /**
         * Favorite entries
         */
        favorites?: {
            /**
             * Favorite Anime
             */
            anime?: Array<entry_meta>;
            /**
             * Favorite Manga
             */
            manga?: Array<entry_meta>;
            /**
             * Favorite Characters
             */
            characters?: Array<entry_meta>;
            /**
             * Favorite People
             */
            people?: Array<entry_meta>;
        };
        /**
         * User About. NOTE: About information is customizable by users through BBCode on MyAnimeList. This means users can add multimedia content, different text sizes, etc. Due to this freeform, Jikan returns parsed HTML. Validate on your end!
         */
        about?: string;
    }>;
};

export type user_statistics = {
    data?: {
        /**
         * Anime Statistics
         */
        anime?: {
            /**
             * Number of days spent watching Anime
             */
            days_watched?: number;
            /**
             * Mean Score
             */
            mean_score?: number;
            /**
             * Anime Watching
             */
            watching?: number;
            /**
             * Anime Completed
             */
            completed?: number;
            /**
             * Anime On-Hold
             */
            on_hold?: number;
            /**
             * Anime Dropped
             */
            dropped?: number;
            /**
             * Anime Planned to Watch
             */
            plan_to_watch?: number;
            /**
             * Total Anime entries on User list
             */
            total_entries?: number;
            /**
             * Anime re-watched
             */
            rewatched?: number;
            /**
             * Number of Anime Episodes Watched
             */
            episodes_watched?: number;
        };
        /**
         * Manga Statistics
         */
        manga?: {
            /**
             * Number of days spent reading Manga
             */
            days_read?: number;
            /**
             * Mean Score
             */
            mean_score?: number;
            /**
             * Manga Reading
             */
            reading?: number;
            /**
             * Manga Completed
             */
            completed?: number;
            /**
             * Manga On-Hold
             */
            on_hold?: number;
            /**
             * Manga Dropped
             */
            dropped?: number;
            /**
             * Manga Planned to Read
             */
            plan_to_read?: number;
            /**
             * Total Manga entries on User list
             */
            total_entries?: number;
            /**
             * Manga re-read
             */
            reread?: number;
            /**
             * Number of Manga Chapters Read
             */
            chapters_read?: number;
            /**
             * Number of Manga Volumes Read
             */
            volumes_read?: number;
        };
    };
};

/**
 * Recommendations
 */
export type recommendations = {
    data?: Array<{
        /**
         * MAL IDs of recommendations is both of the MAL ID's with a `-` delimiter
         */
        mal_id?: string;
        /**
         * Array of 2 entries that are being recommended to each other
         */
        entry?: Array<anime_meta | manga_meta>;
        /**
         * Recommendation context provided by the user
         */
        content?: string;
        user?: user_by_id;
    }>;
} & pagination;

/**
 * Entry Recommendations Resource
 */
export type entry_recommendations = {
    data?: Array<{
        entry?: anime_meta | manga_meta;
    }>;
};

export type manga_review = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * MyAnimeList review URL
     */
    url?: string;
    /**
     * Entry type
     */
    type?: string;
    /**
     * User reaction count on the review
     */
    reactions?: {
        /**
         * Overall reaction count
         */
        overall?: number;
        /**
         * Nice reaction count
         */
        nice?: number;
        /**
         * Love it reaction count
         */
        love_it?: number;
        /**
         * Funny reaction count
         */
        funny?: number;
        /**
         * Confusing reaction count
         */
        confusing?: number;
        /**
         * Informative reaction count
         */
        informative?: number;
        /**
         * Well written reaction count
         */
        well_written?: number;
        /**
         * Creative reaction count
         */
        creative?: number;
    };
    /**
     * Review created date ISO8601
     */
    date?: string;
    /**
     * Review content
     */
    review?: string;
    /**
     * Number of user votes on the Review
     */
    score?: number;
    /**
     * Review tags
     */
    tags?: Array<string>;
    /**
     * The review contains spoiler
     */
    is_spoiler?: boolean;
    /**
     * The review was made before the entry was completed
     */
    is_preliminary?: boolean;
};

export type anime_review = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * MyAnimeList review URL
     */
    url?: string;
    /**
     * Entry type
     */
    type?: string;
    /**
     * User reaction count on the review
     */
    reactions?: {
        /**
         * Overall reaction count
         */
        overall?: number;
        /**
         * Nice reaction count
         */
        nice?: number;
        /**
         * Love it reaction count
         */
        love_it?: number;
        /**
         * Funny reaction count
         */
        funny?: number;
        /**
         * Confusing reaction count
         */
        confusing?: number;
        /**
         * Informative reaction count
         */
        informative?: number;
        /**
         * Well written reaction count
         */
        well_written?: number;
        /**
         * Creative reaction count
         */
        creative?: number;
    };
    /**
     * Review created date ISO8601
     */
    date?: string;
    /**
     * Review content
     */
    review?: string;
    /**
     * Number of user votes on the Review
     */
    score?: number;
    /**
     * Review tags
     */
    tags?: Array<string>;
    /**
     * The review contains spoiler
     */
    is_spoiler?: boolean;
    /**
     * The review was made before the entry was completed
     */
    is_preliminary?: boolean;
    /**
     * Number of episodes watched
     */
    episodes_watched?: number;
};

/**
 * Anime Reviews Resource
 */
export type anime_reviews = {
    data?: Array<
        {
            user?: user_meta;
        } & anime_review
    >;
} & pagination;

/**
 * Manga Reviews Resource
 */
export type manga_reviews = {
    data?: Array<
        {
            user?: user_meta;
        } & manga_review
    >;
} & pagination;

/**
 * Streaming links
 */
export type streaming_links = {
    data?: Array<{
        name?: string;
        url?: string;
    }>;
};

/**
 * Anime User Updates Resource
 */
export type anime_userupdates = {
    data?: Array<{
        user?: user_meta;
        /**
         * User Score
         */
        score?: number | null;
        /**
         * User list status
         */
        status?: string;
        /**
         * Number of episodes seen
         */
        episodes_seen?: number | null;
        /**
         * Total number of episodes
         */
        episodes_total?: number | null;
        /**
         * Last updated date ISO8601
         */
        date?: string;
    }>;
} & pagination;

/**
 * Manga User Updates Resource
 */
export type manga_userupdates = {
    data?: Array<{
        user?: user_meta;
        /**
         * User Score
         */
        score?: number | null;
        /**
         * User list status
         */
        status?: string;
        /**
         * Number of volumes read
         */
        volumes_read?: number;
        /**
         * Total number of volumes
         */
        volumes_total?: number;
        /**
         * Number of chapters read
         */
        chapters_read?: number;
        /**
         * Total number of chapters
         */
        chapters_total?: number;
        /**
         * Last updated date ISO8601
         */
        date?: string;
    }>;
} & pagination;

/**
 * This is a flag. When supplied it will include entries which are continuing from previous seasons. MAL includes these items on the seasons view in the &#8243;TV (continuing)&#8243; section. (Example: https://myanimelist.net/anime/season/2024/winter) <br />Example usage: `?continuing`
 */
export type Parametercontinuing = boolean;

/**
 * This is a flag. When supplied it will include entries with the Kids genres in specific endpoints that filter them out by default. You do not need to pass a value to it. e.g usage: `?kids`
 */
export type Parameterkids = boolean;

export type Parameterlimit = number;

export type Parameterpage = number;

/**
 * Any reviews left during an ongoing anime/manga, those reviews are tagged as preliminary. NOTE: Preliminary reviews are not returned by default so if the entry is airing/publishing you need to add this otherwise you will get an empty list. e.g usage: `?preliminary=true`
 */
export type Parameterpreliminary = boolean;

/**
 * 'Safe For Work'. This is a flag. When supplied it will filter out entries according to the SFW Policy. You do not need to pass a value to it. e.g usage: `?sfw`
 */
export type Parametersfw = boolean;

/**
 * Any reviews that are tagged as a spoiler. Spoiler reviews are not returned by default. e.g usage: `?spoiler=true`
 */
export type Parameterspoilers = boolean;

/**
 * This is a flag. When supplied it will include entries which are unapproved. Unapproved entries on MyAnimeList are those that are user submitted and have not yet been approved by MAL to show up on other pages. They will have their own specifc pages and are often removed resulting in a 404 error. You do not need to pass a value to it. e.g usage: `?unapproved`
 */
export type Parameterunapproved = boolean;

export type GetAnimeFullByIdData = {
    id: number;
};

export type GetAnimeFullByIdResponse = {
    data?: anime_full;
};

export type GetAnimeByIdData = {
    id: number;
};

export type GetAnimeByIdResponse = {
    data?: anime;
};

export type GetAnimeCharactersData = {
    id: number;
};

export type GetAnimeCharactersResponse = anime_characters;

export type GetAnimeStaffData = {
    id: number;
};

export type GetAnimeStaffResponse = anime_staff;

export type GetAnimeEpisodesData = {
    id: number;
    page?: number;
};

export type GetAnimeEpisodesResponse = anime_episodes;

export type GetAnimeEpisodeByIdData = {
    episode: number;
    id: number;
};

export type GetAnimeEpisodeByIdResponse = {
    data?: anime_episode;
};

export type GetAnimeNewsData = {
    id: number;
    page?: number;
};

export type GetAnimeNewsResponse = anime_news;

export type GetAnimeForumData = {
    /**
     * Filter topics
     */
    filter?: 'all' | 'episode' | 'other';
    id: number;
};

export type GetAnimeForumResponse = forum;

export type GetAnimeVideosData = {
    id: number;
};

export type GetAnimeVideosResponse = anime_videos;

export type GetAnimeVideosEpisodesData = {
    id: number;
    page?: number;
};

export type GetAnimeVideosEpisodesResponse = anime_videos_episodes;

export type GetAnimePicturesData = {
    id: number;
};

export type GetAnimePicturesResponse = pictures_variants;

export type GetAnimeStatisticsData = {
    id: number;
};

export type GetAnimeStatisticsResponse = anime_statistics;

export type GetAnimeMoreInfoData = {
    id: number;
};

export type GetAnimeMoreInfoResponse = moreinfo;

export type GetAnimeRecommendationsData = {
    id: number;
};

export type GetAnimeRecommendationsResponse = entry_recommendations;

export type GetAnimeUserUpdatesData = {
    id: number;
    page?: number;
};

export type GetAnimeUserUpdatesResponse = anime_userupdates;

export type GetAnimeReviewsData = {
    id: number;
    page?: number;
    /**
     * Any reviews left during an ongoing anime/manga, those reviews are tagged as preliminary. NOTE: Preliminary reviews are not returned by default so if the entry is airing/publishing you need to add this otherwise you will get an empty list. e.g usage: `?preliminary=true`
     */
    preliminary?: boolean;
    /**
     * Any reviews that are tagged as a spoiler. Spoiler reviews are not returned by default. e.g usage: `?spoiler=true`
     */
    spoilers?: boolean;
};

export type GetAnimeReviewsResponse = anime_reviews;

export type GetAnimeRelationsData = {
    id: number;
};

export type GetAnimeRelationsResponse = {
    data?: Array<relation>;
};

export type GetAnimeThemesData = {
    id: number;
};

export type GetAnimeThemesResponse = anime_themes;

export type GetAnimeExternalData = {
    id: number;
};

export type GetAnimeExternalResponse = external_links;

export type GetAnimeStreamingData = {
    id: number;
};

export type GetAnimeStreamingResponse = external_links;

export type GetCharacterFullByIdData = {
    id: number;
};

export type GetCharacterFullByIdResponse = {
    data?: character_full;
};

export type GetCharacterByIdData = {
    id: number;
};

export type GetCharacterByIdResponse = {
    data?: character;
};

export type GetCharacterAnimeData = {
    id: number;
};

export type GetCharacterAnimeResponse = character_anime;

export type GetCharacterMangaData = {
    id: number;
};

export type GetCharacterMangaResponse = character_manga;

export type GetCharacterVoiceActorsData = {
    id: number;
};

export type GetCharacterVoiceActorsResponse = character_voice_actors;

export type GetCharacterPicturesData = {
    id: number;
};

export type GetCharacterPicturesResponse = character_pictures;

export type GetClubsByIdData = {
    id: number;
};

export type GetClubsByIdResponse = {
    data?: club;
};

export type GetClubMembersData = {
    id: number;
    page?: number;
};

export type GetClubMembersResponse = pagination & club_member;

export type GetClubStaffData = {
    id: number;
};

export type GetClubStaffResponse = club_staff;

export type GetClubRelationsData = {
    id: number;
};

export type GetClubRelationsResponse = club_relations;

export type GetAnimeGenresData = {
    filter?: genre_query_filter;
};

export type GetAnimeGenresResponse = genres;

export type GetMangaGenresData = {
    filter?: genre_query_filter;
};

export type GetMangaGenresResponse = genres;

export type GetMagazinesData = {
    /**
     * Return entries starting with the given letter
     */
    letter?: string;
    limit?: number;
    orderBy?: magazines_query_orderby;
    page?: number;
    q?: string;
    sort?: search_query_sort;
};

export type GetMagazinesResponse = magazines;

export type GetMangaFullByIdData = {
    id: number;
};

export type GetMangaFullByIdResponse = {
    data?: manga_full;
};

export type GetMangaByIdData = {
    id: number;
};

export type GetMangaByIdResponse = {
    data?: manga;
};

export type GetMangaCharactersData = {
    id: number;
};

export type GetMangaCharactersResponse = manga_characters;

export type GetMangaNewsData = {
    id: number;
    page?: number;
};

export type GetMangaNewsResponse = manga_news;

export type GetMangaTopicsData = {
    /**
     * Filter topics
     */
    filter?: 'all' | 'episode' | 'other';
    id: number;
};

export type GetMangaTopicsResponse = forum;

export type GetMangaPicturesData = {
    id: number;
};

export type GetMangaPicturesResponse = manga_pictures;

export type GetMangaStatisticsData = {
    id: number;
};

export type GetMangaStatisticsResponse = manga_statistics;

export type GetMangaMoreInfoData = {
    id: number;
};

export type GetMangaMoreInfoResponse = moreinfo;

export type GetMangaRecommendationsData = {
    id: number;
};

export type GetMangaRecommendationsResponse = entry_recommendations;

export type GetMangaUserUpdatesData = {
    id: number;
    page?: number;
};

export type GetMangaUserUpdatesResponse = manga_userupdates;

export type GetMangaReviewsData = {
    id: number;
    page?: number;
    /**
     * Any reviews left during an ongoing anime/manga, those reviews are tagged as preliminary. NOTE: Preliminary reviews are not returned by default so if the entry is airing/publishing you need to add this otherwise you will get an empty list. e.g usage: `?preliminary=true`
     */
    preliminary?: boolean;
    /**
     * Any reviews that are tagged as a spoiler. Spoiler reviews are not returned by default. e.g usage: `?spoiler=true`
     */
    spoilers?: boolean;
};

export type GetMangaReviewsResponse = manga_reviews;

export type GetMangaRelationsData = {
    id: number;
};

export type GetMangaRelationsResponse = {
    data?: Array<relation>;
};

export type GetMangaExternalData = {
    id: number;
};

export type GetMangaExternalResponse = external_links;

export type GetPersonFullByIdData = {
    id: number;
};

export type GetPersonFullByIdResponse = {
    data?: person_full;
};

export type GetPersonByIdData = {
    id: number;
};

export type GetPersonByIdResponse = {
    data?: person;
};

export type GetPersonAnimeData = {
    id: number;
};

export type GetPersonAnimeResponse = person_anime;

export type GetPersonVoicesData = {
    id: number;
};

export type GetPersonVoicesResponse = person_voice_acting_roles;

export type GetPersonMangaData = {
    id: number;
};

export type GetPersonMangaResponse = person_manga;

export type GetPersonPicturesData = {
    id: number;
};

export type GetPersonPicturesResponse = person_pictures;

export type GetProducerByIdData = {
    id: number;
};

export type GetProducerByIdResponse = {
    data?: producer;
};

export type GetProducerFullByIdData = {
    id: number;
};

export type GetProducerFullByIdResponse = {
    data?: producer_full;
};

export type GetProducerExternalData = {
    id: number;
};

export type GetProducerExternalResponse = external_links;

export type GetRandomAnimeResponse = {
    data?: anime;
};

export type GetRandomMangaResponse = {
    data?: manga;
};

export type GetRandomCharactersResponse = {
    data?: character;
};

export type GetRandomPeopleResponse = {
    data?: person;
};

export type GetRandomUsersResponse = {
    data?: user_profile;
};

export type GetRecentAnimeRecommendationsData = {
    page?: number;
};

export type GetRecentAnimeRecommendationsResponse = recommendations;

export type GetRecentMangaRecommendationsData = {
    page?: number;
};

export type GetRecentMangaRecommendationsResponse = recommendations;

export type GetRecentAnimeReviewsData = {
    page?: number;
    /**
     * Any reviews left during an ongoing anime/manga, those reviews are tagged as preliminary. NOTE: Preliminary reviews are not returned by default so if the entry is airing/publishing you need to add this otherwise you will get an empty list. e.g usage: `?preliminary=true`
     */
    preliminary?: boolean;
    /**
     * Any reviews that are tagged as a spoiler. Spoiler reviews are not returned by default. e.g usage: `?spoiler=true`
     */
    spoilers?: boolean;
};

export type GetRecentAnimeReviewsResponse = unknown;

export type GetRecentMangaReviewsData = {
    page?: number;
    /**
     * Any reviews left during an ongoing anime/manga, those reviews are tagged as preliminary. NOTE: Preliminary reviews are not returned by default so if the entry is airing/publishing you need to add this otherwise you will get an empty list. e.g usage: `?preliminary=true`
     */
    preliminary?: boolean;
    /**
     * Any reviews that are tagged as a spoiler. Spoiler reviews are not returned by default. e.g usage: `?spoiler=true`
     */
    spoilers?: boolean;
};

export type GetRecentMangaReviewsResponse = unknown;

export type GetSchedulesData = {
    /**
     * Filter by day
     */
    filter?:
        | 'monday'
        | 'tuesday'
        | 'wednesday'
        | 'thursday'
        | 'friday'
        | 'saturday'
        | 'sunday'
        | 'unknown'
        | 'other';
    /**
     * When supplied, it will filter entries with the `Kids` Genre Demographic. When supplied as `kids=true`, it will return only Kid entries and when supplied as `kids=false`, it will filter out any Kid entries. Defaults to `false`.
     */
    kids?: 'true' | 'false';
    limit?: number;
    page?: number;
    /**
     * 'Safe For Work'. When supplied, it will filter entries with the `Hentai` Genre. When supplied as `sfw=true`, it will return only SFW entries and when supplied as `sfw=false`, it will filter out any Hentai entries. Defaults to `false`.
     */
    sfw?: 'true' | 'false';
    /**
     * This is a flag. When supplied it will include entries which are unapproved. Unapproved entries on MyAnimeList are those that are user submitted and have not yet been approved by MAL to show up on other pages. They will have their own specifc pages and are often removed resulting in a 404 error. You do not need to pass a value to it. e.g usage: `?unapproved`
     */
    unapproved?: boolean;
};

export type GetSchedulesResponse = schedules;

export type GetAnimeSearchData = {
    /**
     * Filter by ending date. Format: YYYY-MM-DD. e.g `2022`, `2005-05`, `2005-01-01`
     */
    endDate?: string;
    /**
     * Filter by genre(s) IDs. Can pass multiple with a comma as a delimiter. e.g 1,2,3
     */
    genres?: string;
    /**
     * Exclude genre(s) IDs. Can pass multiple with a comma as a delimiter. e.g 1,2,3
     */
    genresExclude?: string;
    /**
     * Return entries starting with the given letter
     */
    letter?: string;
    limit?: number;
    /**
     * Set a maximum score for results
     */
    maxScore?: number;
    /**
     * Set a minimum score for results.
     */
    minScore?: number;
    orderBy?: anime_search_query_orderby;
    page?: number;
    /**
     * Filter by producer(s) IDs. Can pass multiple with a comma as a delimiter. e.g 1,2,3
     */
    producers?: string;
    q?: string;
    rating?: anime_search_query_rating;
    score?: number;
    /**
     * Filter out Adult entries
     */
    sfw?: boolean;
    sort?: search_query_sort;
    /**
     * Filter by starting date. Format: YYYY-MM-DD. e.g `2022`, `2005-05`, `2005-01-01`
     */
    startDate?: string;
    status?: anime_search_query_status;
    type?: anime_search_query_type;
    /**
     * This is a flag. When supplied it will include entries which are unapproved. Unapproved entries on MyAnimeList are those that are user submitted and have not yet been approved by MAL to show up on other pages. They will have their own specifc pages and are often removed resulting in a 404 error. You do not need to pass a value to it. e.g usage: `?unapproved`
     */
    unapproved?: boolean;
};

export type GetAnimeSearchResponse = anime_search;

export type GetMangaSearchData = {
    /**
     * Filter by ending date. Format: YYYY-MM-DD. e.g `2022`, `2005-05`, `2005-01-01`
     */
    endDate?: string;
    /**
     * Filter by genre(s) IDs. Can pass multiple with a comma as a delimiter. e.g 1,2,3
     */
    genres?: string;
    /**
     * Exclude genre(s) IDs. Can pass multiple with a comma as a delimiter. e.g 1,2,3
     */
    genresExclude?: string;
    /**
     * Return entries starting with the given letter
     */
    letter?: string;
    limit?: number;
    /**
     * Filter by magazine(s) IDs. Can pass multiple with a comma as a delimiter. e.g 1,2,3
     */
    magazines?: string;
    /**
     * Set a maximum score for results
     */
    maxScore?: number;
    /**
     * Set a minimum score for results.
     */
    minScore?: number;
    orderBy?: manga_search_query_orderby;
    page?: number;
    q?: string;
    score?: number;
    /**
     * Filter out Adult entries
     */
    sfw?: boolean;
    sort?: search_query_sort;
    /**
     * Filter by starting date. Format: YYYY-MM-DD. e.g `2022`, `2005-05`, `2005-01-01`
     */
    startDate?: string;
    status?: manga_search_query_status;
    type?: manga_search_query_type;
    /**
     * This is a flag. When supplied it will include entries which are unapproved. Unapproved entries on MyAnimeList are those that are user submitted and have not yet been approved by MAL to show up on other pages. They will have their own specifc pages and are often removed resulting in a 404 error. You do not need to pass a value to it. e.g usage: `?unapproved`
     */
    unapproved?: boolean;
};

export type GetMangaSearchResponse = manga_search;

export type GetPeopleSearchData = {
    /**
     * Return entries starting with the given letter
     */
    letter?: string;
    limit?: number;
    orderBy?: people_search_query_orderby;
    page?: number;
    q?: string;
    sort?: search_query_sort;
};

export type GetPeopleSearchResponse = people_search;

export type GetCharactersSearchData = {
    /**
     * Return entries starting with the given letter
     */
    letter?: string;
    limit?: number;
    orderBy?: characters_search_query_orderby;
    page?: number;
    q?: string;
    sort?: search_query_sort;
};

export type GetCharactersSearchResponse = characters_search;

export type GetUsersSearchData = {
    gender?: users_search_query_gender;
    limit?: number;
    location?: string;
    maxAge?: number;
    minAge?: number;
    page?: number;
    q?: string;
};

export type GetUsersSearchResponse = users_search;

export type GetUserByIdData = {
    id: number;
};

export type GetUserByIdResponse = {
    data?: user_by_id;
};

export type GetClubsSearchData = {
    category?: club_search_query_category;
    /**
     * Return entries starting with the given letter
     */
    letter?: string;
    limit?: number;
    orderBy?: club_search_query_orderby;
    page?: number;
    q?: string;
    sort?: search_query_sort;
    type?: club_search_query_type;
};

export type GetClubsSearchResponse = clubs_search;

export type GetProducersData = {
    /**
     * Return entries starting with the given letter
     */
    letter?: string;
    limit?: number;
    orderBy?: producers_query_orderby;
    page?: number;
    q?: string;
    sort?: search_query_sort;
};

export type GetProducersResponse = producers;

export type GetSeasonNowData = {
    /**
     * This is a flag. When supplied it will include entries which are continuing from previous seasons. MAL includes these items on the seasons view in the &#8243;TV (continuing)&#8243; section. (Example: https://myanimelist.net/anime/season/2024/winter) <br />Example usage: `?continuing`
     */
    continuing?: boolean;
    /**
     * Entry types
     */
    filter?: 'tv' | 'movie' | 'ova' | 'special' | 'ona' | 'music';
    limit?: number;
    page?: number;
    /**
     * 'Safe For Work'. This is a flag. When supplied it will filter out entries according to the SFW Policy. You do not need to pass a value to it. e.g usage: `?sfw`
     */
    sfw?: boolean;
    /**
     * This is a flag. When supplied it will include entries which are unapproved. Unapproved entries on MyAnimeList are those that are user submitted and have not yet been approved by MAL to show up on other pages. They will have their own specifc pages and are often removed resulting in a 404 error. You do not need to pass a value to it. e.g usage: `?unapproved`
     */
    unapproved?: boolean;
};

export type GetSeasonNowResponse = anime_search;

export type GetSeasonData = {
    /**
     * This is a flag. When supplied it will include entries which are continuing from previous seasons. MAL includes these items on the seasons view in the &#8243;TV (continuing)&#8243; section. (Example: https://myanimelist.net/anime/season/2024/winter) <br />Example usage: `?continuing`
     */
    continuing?: boolean;
    /**
     * Entry types
     */
    filter?: 'tv' | 'movie' | 'ova' | 'special' | 'ona' | 'music';
    limit?: number;
    page?: number;
    season: string;
    /**
     * 'Safe For Work'. This is a flag. When supplied it will filter out entries according to the SFW Policy. You do not need to pass a value to it. e.g usage: `?sfw`
     */
    sfw?: boolean;
    /**
     * This is a flag. When supplied it will include entries which are unapproved. Unapproved entries on MyAnimeList are those that are user submitted and have not yet been approved by MAL to show up on other pages. They will have their own specifc pages and are often removed resulting in a 404 error. You do not need to pass a value to it. e.g usage: `?unapproved`
     */
    unapproved?: boolean;
    year: number;
};

export type GetSeasonResponse = anime_search;

export type GetSeasonsListResponse = seasons;

export type GetSeasonUpcomingData = {
    /**
     * This is a flag. When supplied it will include entries which are continuing from previous seasons. MAL includes these items on the seasons view in the &#8243;TV (continuing)&#8243; section. (Example: https://myanimelist.net/anime/season/2024/winter) <br />Example usage: `?continuing`
     */
    continuing?: boolean;
    /**
     * Entry types
     */
    filter?: 'tv' | 'movie' | 'ova' | 'special' | 'ona' | 'music';
    limit?: number;
    page?: number;
    /**
     * 'Safe For Work'. This is a flag. When supplied it will filter out entries according to the SFW Policy. You do not need to pass a value to it. e.g usage: `?sfw`
     */
    sfw?: boolean;
    /**
     * This is a flag. When supplied it will include entries which are unapproved. Unapproved entries on MyAnimeList are those that are user submitted and have not yet been approved by MAL to show up on other pages. They will have their own specifc pages and are often removed resulting in a 404 error. You do not need to pass a value to it. e.g usage: `?unapproved`
     */
    unapproved?: boolean;
};

export type GetSeasonUpcomingResponse = anime_search;

export type GetTopAnimeData = {
    filter?: top_anime_filter;
    limit?: number;
    page?: number;
    rating?: anime_search_query_rating;
    /**
     * Filter out Adult entries
     */
    sfw?: boolean;
    type?: anime_search_query_type;
};

export type GetTopAnimeResponse = anime_search;

export type GetTopMangaData = {
    filter?: top_manga_filter;
    limit?: number;
    page?: number;
    type?: manga_search_query_type;
};

export type GetTopMangaResponse = manga_search;

export type GetTopPeopleData = {
    limit?: number;
    page?: number;
};

export type GetTopPeopleResponse = people_search;

export type GetTopCharactersData = {
    limit?: number;
    page?: number;
};

export type GetTopCharactersResponse = characters_search;

export type GetTopReviewsData = {
    page?: number;
    /**
     * Whether the results include preliminary reviews or not. Defaults to true.
     */
    preliminary?: boolean;
    /**
     * Whether the results include reviews with spoilers or not. Defaults to true.
     */
    spoilers?: boolean;
    type?: top_reviews_type_enum;
};

export type GetTopReviewsResponse = {
    data?: {
        data?: Array<
            | ({
                  user?: user_meta;
              } & {
                  anime?: anime_meta;
              } & anime_review)
            | ({
                  user?: user_meta;
              } & {
                  manga?: manga_meta;
              } & manga_review)
        >;
    } & pagination;
};

export type GetUserFullProfileData = {
    username: string;
};

export type GetUserFullProfileResponse = {
    data?: user_profile_full;
};

export type GetUserProfileData = {
    username: string;
};

export type GetUserProfileResponse = {
    data?: user_profile;
};

export type GetUserStatisticsData = {
    username: string;
};

export type GetUserStatisticsResponse = user_statistics;

export type GetUserFavoritesData = {
    username: string;
};

export type GetUserFavoritesResponse = {
    data?: user_favorites;
};

export type GetUserUpdatesData = {
    username: string;
};

export type GetUserUpdatesResponse = user_updates;

export type GetUserAboutData = {
    username: string;
};

export type GetUserAboutResponse = user_about;

export type GetUserHistoryData = {
    type?: 'anime' | 'manga';
    username: string;
};

export type GetUserHistoryResponse = user_history;

export type GetUserFriendsData = {
    page?: number;
    username: string;
};

export type GetUserFriendsResponse = user_friends;

export type GetUserAnimelistData = {
    status?: user_anime_list_status_filter;
    username: string;
};

export type GetUserAnimelistResponse = unknown;

export type GetUserMangaListData = {
    status?: user_manga_list_status_filter;
    username: string;
};

export type GetUserMangaListResponse = unknown;

export type GetUserReviewsData = {
    page?: number;
    username: string;
};

export type GetUserReviewsResponse = {
    data?: {
        data?: Array<
            | ({
                  user?: user_meta;
              } & {
                  anime?: anime_meta;
              } & anime_review)
            | ({
                  user?: user_meta;
              } & {
                  manga?: manga_meta;
              } & manga_review)
        >;
    } & pagination;
};

export type GetUserRecommendationsData = {
    page?: number;
    username: string;
};

export type GetUserRecommendationsResponse = recommendations;

export type GetUserClubsData = {
    page?: number;
    username: string;
};

export type GetUserClubsResponse = user_clubs;

export type GetUserExternalData = {
    username: string;
};

export type GetUserExternalResponse = external_links;

export type GetWatchRecentEpisodesResponse = watch_episodes;

export type GetWatchPopularEpisodesResponse = watch_episodes;

export type GetWatchRecentPromosData = {
    page?: number;
};

export type GetWatchRecentPromosResponse = watch_promos;

export type GetWatchPopularPromosResponse = watch_promos;

export type $OpenApiTs = {
    '/anime/{id}/full': {
        get: {
            req: GetAnimeFullByIdData;
            res: {
                /**
                 * Returns complete anime resource data
                 */
                200: {
                    data?: anime_full;
                };
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/anime/{id}': {
        get: {
            req: GetAnimeByIdData;
            res: {
                /**
                 * Returns anime resource
                 */
                200: {
                    data?: anime;
                };
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/anime/{id}/characters': {
        get: {
            req: GetAnimeCharactersData;
            res: {
                /**
                 * Returns anime characters resource
                 */
                200: anime_characters;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/anime/{id}/staff': {
        get: {
            req: GetAnimeStaffData;
            res: {
                /**
                 * Returns anime staff resource
                 */
                200: anime_staff;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/anime/{id}/episodes': {
        get: {
            req: GetAnimeEpisodesData;
            res: {
                /**
                 * Returns a list of anime episodes
                 */
                200: anime_episodes;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/anime/{id}/episodes/{episode}': {
        get: {
            req: GetAnimeEpisodeByIdData;
            res: {
                /**
                 * Returns a single anime episode resource
                 */
                200: {
                    data?: anime_episode;
                };
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/anime/{id}/news': {
        get: {
            req: GetAnimeNewsData;
            res: {
                /**
                 * Returns a list of news articles related to the entry
                 */
                200: anime_news;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/anime/{id}/forum': {
        get: {
            req: GetAnimeForumData;
            res: {
                /**
                 * Returns a list of forum topics related to the entry
                 */
                200: forum;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/anime/{id}/videos': {
        get: {
            req: GetAnimeVideosData;
            res: {
                /**
                 * Returns videos related to the entry
                 */
                200: anime_videos;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/anime/{id}/videos/episodes': {
        get: {
            req: GetAnimeVideosEpisodesData;
            res: {
                /**
                 * Returns episode videos related to the entry
                 */
                200: anime_videos_episodes;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/anime/{id}/pictures': {
        get: {
            req: GetAnimePicturesData;
            res: {
                /**
                 * Returns pictures related to the entry
                 */
                200: pictures_variants;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/anime/{id}/statistics': {
        get: {
            req: GetAnimeStatisticsData;
            res: {
                /**
                 * Returns anime statistics
                 */
                200: anime_statistics;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/anime/{id}/moreinfo': {
        get: {
            req: GetAnimeMoreInfoData;
            res: {
                /**
                 * Returns anime statistics
                 */
                200: moreinfo;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/anime/{id}/recommendations': {
        get: {
            req: GetAnimeRecommendationsData;
            res: {
                /**
                 * Returns anime recommendations
                 */
                200: entry_recommendations;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/anime/{id}/userupdates': {
        get: {
            req: GetAnimeUserUpdatesData;
            res: {
                /**
                 * Returns a list of users who have added/updated/removed the entry on their list
                 */
                200: anime_userupdates;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/anime/{id}/reviews': {
        get: {
            req: GetAnimeReviewsData;
            res: {
                /**
                 * Returns anime reviews
                 */
                200: anime_reviews;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/anime/{id}/relations': {
        get: {
            req: GetAnimeRelationsData;
            res: {
                /**
                 * Returns anime relations
                 */
                200: {
                    data?: Array<relation>;
                };
            };
        };
    };
    '/anime/{id}/themes': {
        get: {
            req: GetAnimeThemesData;
            res: {
                /**
                 * Returns anime themes
                 */
                200: anime_themes;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/anime/{id}/external': {
        get: {
            req: GetAnimeExternalData;
            res: {
                /**
                 * Returns anime external links
                 */
                200: external_links;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/anime/{id}/streaming': {
        get: {
            req: GetAnimeStreamingData;
            res: {
                /**
                 * Returns anime streaming links
                 */
                200: external_links;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/characters/{id}/full': {
        get: {
            req: GetCharacterFullByIdData;
            res: {
                /**
                 * Returns complete character resource data
                 */
                200: {
                    data?: character_full;
                };
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/characters/{id}': {
        get: {
            req: GetCharacterByIdData;
            res: {
                /**
                 * Returns character resource
                 */
                200: {
                    data?: character;
                };
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/characters/{id}/anime': {
        get: {
            req: GetCharacterAnimeData;
            res: {
                /**
                 * Returns anime that character is in
                 */
                200: character_anime;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/characters/{id}/manga': {
        get: {
            req: GetCharacterMangaData;
            res: {
                /**
                 * Returns manga that character is in
                 */
                200: character_manga;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/characters/{id}/voices': {
        get: {
            req: GetCharacterVoiceActorsData;
            res: {
                /**
                 * Returns the character's voice actors
                 */
                200: character_voice_actors;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/characters/{id}/pictures': {
        get: {
            req: GetCharacterPicturesData;
            res: {
                /**
                 * Returns pictures related to the entry
                 */
                200: character_pictures;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/clubs/{id}': {
        get: {
            req: GetClubsByIdData;
            res: {
                /**
                 * Returns Club Resource
                 */
                200: {
                    data?: club;
                };
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/clubs/{id}/members': {
        get: {
            req: GetClubMembersData;
            res: {
                /**
                 * Returns Club Members Resource
                 */
                200: pagination & club_member;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/clubs/{id}/staff': {
        get: {
            req: GetClubStaffData;
            res: {
                /**
                 * Returns Club Staff
                 */
                200: club_staff;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/clubs/{id}/relations': {
        get: {
            req: GetClubRelationsData;
            res: {
                /**
                 * Returns Club Relations
                 */
                200: club_relations;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/genres/anime': {
        get: {
            req: GetAnimeGenresData;
            res: {
                /**
                 * Returns entry genres, explicit_genres, themes and demographics
                 */
                200: genres;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/genres/manga': {
        get: {
            req: GetMangaGenresData;
            res: {
                /**
                 * Returns entry genres, explicit_genres, themes and demographics
                 */
                200: genres;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/magazines': {
        get: {
            req: GetMagazinesData;
            res: {
                /**
                 * Returns magazines collection
                 */
                200: magazines;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/manga/{id}/full': {
        get: {
            req: GetMangaFullByIdData;
            res: {
                /**
                 * Returns complete manga resource data
                 */
                200: {
                    data?: manga_full;
                };
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/manga/{id}': {
        get: {
            req: GetMangaByIdData;
            res: {
                /**
                 * Returns pictures related to the entry
                 */
                200: {
                    data?: manga;
                };
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/manga/{id}/characters': {
        get: {
            req: GetMangaCharactersData;
            res: {
                /**
                 * Returns manga characters resource
                 */
                200: manga_characters;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/manga/{id}/news': {
        get: {
            req: GetMangaNewsData;
            res: {
                /**
                 * Returns a list of manga news topics
                 */
                200: manga_news;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/manga/{id}/forum': {
        get: {
            req: GetMangaTopicsData;
            res: {
                /**
                 * Returns a list of manga forum topics
                 */
                200: forum;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/manga/{id}/pictures': {
        get: {
            req: GetMangaPicturesData;
            res: {
                /**
                 * Returns a list of manga pictures
                 */
                200: manga_pictures;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/manga/{id}/statistics': {
        get: {
            req: GetMangaStatisticsData;
            res: {
                /**
                 * Returns anime statistics
                 */
                200: manga_statistics;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/manga/{id}/moreinfo': {
        get: {
            req: GetMangaMoreInfoData;
            res: {
                /**
                 * Returns manga moreinfo
                 */
                200: moreinfo;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/manga/{id}/recommendations': {
        get: {
            req: GetMangaRecommendationsData;
            res: {
                /**
                 * Returns manga recommendations
                 */
                200: entry_recommendations;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/manga/{id}/userupdates': {
        get: {
            req: GetMangaUserUpdatesData;
            res: {
                /**
                 * Returns manga user updates
                 */
                200: manga_userupdates;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/manga/{id}/reviews': {
        get: {
            req: GetMangaReviewsData;
            res: {
                /**
                 * Returns manga reviews
                 */
                200: manga_reviews;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/manga/{id}/relations': {
        get: {
            req: GetMangaRelationsData;
            res: {
                /**
                 * Returns manga relations
                 */
                200: {
                    data?: Array<relation>;
                };
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/manga/{id}/external': {
        get: {
            req: GetMangaExternalData;
            res: {
                /**
                 * Returns manga external links
                 */
                200: external_links;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/people/{id}/full': {
        get: {
            req: GetPersonFullByIdData;
            res: {
                /**
                 * Returns complete character resource data
                 */
                200: {
                    data?: person_full;
                };
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/people/{id}': {
        get: {
            req: GetPersonByIdData;
            res: {
                /**
                 * Returns pictures related to the entry
                 */
                200: {
                    data?: person;
                };
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/people/{id}/anime': {
        get: {
            req: GetPersonAnimeData;
            res: {
                /**
                 * Returns person's anime staff positions
                 */
                200: person_anime;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/people/{id}/voices': {
        get: {
            req: GetPersonVoicesData;
            res: {
                /**
                 * Returns person's voice acting roles
                 */
                200: person_voice_acting_roles;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/people/{id}/manga': {
        get: {
            req: GetPersonMangaData;
            res: {
                /**
                 * Returns person's published manga works
                 */
                200: person_manga;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/people/{id}/pictures': {
        get: {
            req: GetPersonPicturesData;
            res: {
                /**
                 * Returns a list of pictures of the person
                 */
                200: person_pictures;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/producers/{id}': {
        get: {
            req: GetProducerByIdData;
            res: {
                /**
                 * Returns producer resource
                 */
                200: {
                    data?: producer;
                };
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/producers/{id}/full': {
        get: {
            req: GetProducerFullByIdData;
            res: {
                /**
                 * Returns producer resource
                 */
                200: {
                    data?: producer_full;
                };
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/producers/{id}/external': {
        get: {
            req: GetProducerExternalData;
            res: {
                /**
                 * Returns producer's external links
                 */
                200: external_links;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/random/anime': {
        get: {
            res: {
                /**
                 * Returns a random anime resource
                 */
                200: {
                    data?: anime;
                };
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/random/manga': {
        get: {
            res: {
                /**
                 * Returns a random manga resource
                 */
                200: {
                    data?: manga;
                };
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/random/characters': {
        get: {
            res: {
                /**
                 * Returns a random character resource
                 */
                200: {
                    data?: character;
                };
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/random/people': {
        get: {
            res: {
                /**
                 * Returns a random person resource
                 */
                200: {
                    data?: person;
                };
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/random/users': {
        get: {
            res: {
                /**
                 * Returns a random user profile resource
                 */
                200: {
                    data?: user_profile;
                };
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/recommendations/anime': {
        get: {
            req: GetRecentAnimeRecommendationsData;
            res: {
                /**
                 * Returns recent anime recommendations
                 */
                200: recommendations;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/recommendations/manga': {
        get: {
            req: GetRecentMangaRecommendationsData;
            res: {
                /**
                 * Returns recent manga recommendations
                 */
                200: recommendations;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/reviews/anime': {
        get: {
            req: GetRecentAnimeReviewsData;
            res: {
                /**
                 * Returns recent anime reviews
                 */
                200: unknown;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/reviews/manga': {
        get: {
            req: GetRecentMangaReviewsData;
            res: {
                /**
                 * Returns recent manga reviews
                 */
                200: unknown;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/schedules': {
        get: {
            req: GetSchedulesData;
            res: {
                /**
                 * Returns weekly schedule
                 */
                200: schedules;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/anime': {
        get: {
            req: GetAnimeSearchData;
            res: {
                /**
                 * Returns search results for anime
                 */
                200: anime_search;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/manga': {
        get: {
            req: GetMangaSearchData;
            res: {
                /**
                 * Returns search results for manga
                 */
                200: manga_search;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/people': {
        get: {
            req: GetPeopleSearchData;
            res: {
                /**
                 * Returns search results for people
                 */
                200: people_search;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/characters': {
        get: {
            req: GetCharactersSearchData;
            res: {
                /**
                 * Returns search results for characters
                 */
                200: characters_search;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/users': {
        get: {
            req: GetUsersSearchData;
            res: {
                /**
                 * Returns search results for users
                 */
                200: users_search;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/users/userbyid/{id}': {
        get: {
            req: GetUserByIdData;
            res: {
                /**
                 * Returns username by ID search
                 */
                200: {
                    data?: user_by_id;
                };
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/clubs': {
        get: {
            req: GetClubsSearchData;
            res: {
                /**
                 * Returns search results for clubs
                 */
                200: clubs_search;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/producers': {
        get: {
            req: GetProducersData;
            res: {
                /**
                 * Returns producers collection
                 */
                200: producers;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/seasons/now': {
        get: {
            req: GetSeasonNowData;
            res: {
                /**
                 * Returns current seasonal anime
                 */
                200: anime_search;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/seasons/{year}/{season}': {
        get: {
            req: GetSeasonData;
            res: {
                /**
                 * Returns seasonal anime
                 */
                200: anime_search;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/seasons': {
        get: {
            res: {
                /**
                 * Returns available list of seasons
                 */
                200: seasons;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/seasons/upcoming': {
        get: {
            req: GetSeasonUpcomingData;
            res: {
                /**
                 * Returns upcoming season's anime
                 */
                200: anime_search;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/top/anime': {
        get: {
            req: GetTopAnimeData;
            res: {
                /**
                 * Returns top anime
                 */
                200: anime_search;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/top/manga': {
        get: {
            req: GetTopMangaData;
            res: {
                /**
                 * Returns top manga
                 */
                200: manga_search;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/top/people': {
        get: {
            req: GetTopPeopleData;
            res: {
                /**
                 * Returns top people
                 */
                200: people_search;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/top/characters': {
        get: {
            req: GetTopCharactersData;
            res: {
                /**
                 * Returns top characters
                 */
                200: characters_search;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/top/reviews': {
        get: {
            req: GetTopReviewsData;
            res: {
                /**
                 * Returns top reviews
                 */
                200: {
                    data?: {
                        data?: Array<
                            | ({
                                  user?: user_meta;
                              } & {
                                  anime?: anime_meta;
                              } & anime_review)
                            | ({
                                  user?: user_meta;
                              } & {
                                  manga?: manga_meta;
                              } & manga_review)
                        >;
                    } & pagination;
                };
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/users/{username}/full': {
        get: {
            req: GetUserFullProfileData;
            res: {
                /**
                 * Returns complete user resource data
                 */
                200: {
                    data?: user_profile_full;
                };
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/users/{username}': {
        get: {
            req: GetUserProfileData;
            res: {
                /**
                 * Returns user profile
                 */
                200: {
                    data?: user_profile;
                };
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/users/{username}/statistics': {
        get: {
            req: GetUserStatisticsData;
            res: {
                /**
                 * Returns user statistics
                 */
                200: user_statistics;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/users/{username}/favorites': {
        get: {
            req: GetUserFavoritesData;
            res: {
                /**
                 * Returns user favorites
                 */
                200: {
                    data?: user_favorites;
                };
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/users/{username}/userupdates': {
        get: {
            req: GetUserUpdatesData;
            res: {
                /**
                 * Returns user updates
                 */
                200: user_updates;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/users/{username}/about': {
        get: {
            req: GetUserAboutData;
            res: {
                /**
                 * Returns user about in raw HTML
                 */
                200: user_about;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/users/{username}/history': {
        get: {
            req: GetUserHistoryData;
            res: {
                /**
                 * Returns user history (past 30 days)
                 */
                200: user_history;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/users/{username}/friends': {
        get: {
            req: GetUserFriendsData;
            res: {
                /**
                 * Returns user friends
                 */
                200: user_friends;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/users/{username}/animelist': {
        get: {
            req: GetUserAnimelistData;
            res: {
                /**
                 * Returns user anime list
                 */
                200: unknown;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/users/{username}/mangalist': {
        get: {
            req: GetUserMangaListData;
            res: {
                /**
                 * Returns user manga list
                 */
                200: unknown;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/users/{username}/reviews': {
        get: {
            req: GetUserReviewsData;
            res: {
                /**
                 * Returns user reviews
                 */
                200: {
                    data?: {
                        data?: Array<
                            | ({
                                  user?: user_meta;
                              } & {
                                  anime?: anime_meta;
                              } & anime_review)
                            | ({
                                  user?: user_meta;
                              } & {
                                  manga?: manga_meta;
                              } & manga_review)
                        >;
                    } & pagination;
                };
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/users/{username}/recommendations': {
        get: {
            req: GetUserRecommendationsData;
            res: {
                /**
                 * Returns Recent Anime Recommendations
                 */
                200: recommendations;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/users/{username}/clubs': {
        get: {
            req: GetUserClubsData;
            res: {
                /**
                 * Returns user clubs
                 */
                200: user_clubs;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/users/{username}/external': {
        get: {
            req: GetUserExternalData;
            res: {
                /**
                 * Returns user's external links
                 */
                200: external_links;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/watch/episodes': {
        get: {
            res: {
                /**
                 * Returns Recently Added Episodes
                 */
                200: watch_episodes;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/watch/episodes/popular': {
        get: {
            res: {
                /**
                 * Returns Popular Episodes
                 */
                200: watch_episodes;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/watch/promos': {
        get: {
            req: GetWatchRecentPromosData;
            res: {
                /**
                 * Returns Recently Added Promotional Videos
                 */
                200: watch_promos;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
    '/watch/promos/popular': {
        get: {
            res: {
                /**
                 * Returns Popular Promotional Videos
                 */
                200: watch_promos;
                /**
                 * Error: Bad request. When required parameters were not supplied.
                 */
                400: unknown;
            };
        };
    };
};
