/**
 * User's anime list status filter options
 */
export type UserAnimeListStatusFilter = 'all' | 'watching' | 'completed' | 'onhold' | 'dropped' | 'plantowatch';
/**
 * Available Anime order_by properties
 */
export type AnimeSearchQueryOrderby = '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 AnimeSearchQueryRating = 'g' | 'pg' | 'pg13' | 'r17' | 'r' | 'rx';
/**
 * Available Anime statuses
 */
export type AnimeSearchQueryStatus = 'airing' | 'complete' | 'upcoming';
/**
 * Available Anime types
 */
export type AnimeSearchQueryType = 'tv' | 'movie' | 'ova' | 'special' | 'ona' | 'music' | 'cm' | 'pv' | 'tv_special';
/**
 * Available Character order_by properties
 */
export type CharactersSearchQueryOrderby = 'mal_id' | 'name' | 'favorites';
/**
 * Club Search Query Category
 */
export type ClubSearchQueryCategory = 'anime' | 'manga' | 'actors_and_artists' | 'characters' | 'cities_and_neighborhoods' | 'companies' | 'conventions' | 'games' | 'japan' | 'music' | 'other' | 'schools';
/**
 * Club Search Query OrderBy
 */
export type ClubSearchQueryOrderby = 'mal_id' | 'name' | 'members_count' | 'created';
/**
 * Club Search Query Type
 */
export type ClubSearchQueryType = 'public' | 'private' | 'secret';
/**
 * Users Search Query Gender.
 */
export type UsersSearchQueryGender = 'any' | 'male' | 'female' | 'nonbinary';
/**
 * Filter genres by type
 */
export type GenreQueryFilter = 'genres' | 'explicit_genres' | 'themes' | 'demographics';
/**
 * Order by magazine data
 */
export type MagazinesQueryOrderby = 'mal_id' | 'name' | 'count';
/**
 * User's anime list status filter options
 */
export type UserMangaListStatusFilter = 'all' | 'reading' | 'completed' | 'onhold' | 'dropped' | 'plantoread';
/**
 * Available Manga order_by properties
 */
export type MangaSearchQueryOrderby = 'mal_id' | 'title' | 'start_date' | 'end_date' | 'chapters' | 'volumes' | 'score' | 'scored_by' | 'rank' | 'popularity' | 'members' | 'favorites';
/**
 * Available Manga statuses
 */
export type MangaSearchQueryStatus = 'publishing' | 'complete' | 'hiatus' | 'discontinued' | 'upcoming';
/**
 * Available Manga types
 */
export type MangaSearchQueryType = 'manga' | 'novel' | 'lightnovel' | 'oneshot' | 'doujin' | 'manhwa' | 'manhua';
/**
 * Available People order_by properties
 */
export type PeopleSearchQueryOrderby = 'mal_id' | 'name' | 'birthday' | 'favorites';
/**
 * Producers Search Query Order By
 */
export type ProducersQueryOrderby = 'mal_id' | 'count' | 'favorites' | 'established';
/**
 * Search query sort direction
 */
export type SearchQuerySort = 'desc' | 'asc';
/**
 * Top items filter types
 */
export type TopAnimeFilter = 'airing' | 'upcoming' | 'bypopularity' | 'favorite';
/**
 * Top items filter types
 */
export type TopMangaFilter = 'publishing' | 'upcoming' | 'bypopularity' | 'favorite';
/**
 * The type of reviews to filter by. Defaults to anime.
 */
export type TopReviewsTypeEnum = 'anime' | 'manga';
/**
 * Anime Episodes Resource
 */
export type AnimeEpisodes = {
    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?: unknown | null;
        /**
         * Filler episode
         */
        filler?: boolean;
        /**
         * Recap episode
         */
        recap?: boolean;
        /**
         * Episode discussion forum URL
         */
        forum_url?: string | null;
    }>;
} & Pagination;
/**
 * Anime News Resource
 */
export type AnimeNews = Pagination & News;
/**
 * Anime Videos Episodes Resource
 */
export type AnimeVideosEpisodes = {
    data?: Array<{
        /**
         * MyAnimeList ID or Episode Number
         */
        mal_id?: number;
        /**
         * Episode Title
         */
        title?: string;
        /**
         * Episode Subtitle
         */
        episode?: string;
        /**
         * Episode Page URL
         */
        url?: string;
        images?: CommonImages;
    }>;
} & Pagination;
/**
 * Character Pictures
 */
export type CharacterPictures = {
    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 ClubMember = {
    data?: Array<{
        /**
         * User's username
         */
        username?: string;
        /**
         * User URL
         */
        url?: string;
        images?: UserImages;
    }>;
};
/**
 * Manga News Resource
 */
export type MangaNews = Pagination & News;
/**
 * Manga Pictures
 */
export type MangaPictures = {
    data?: Array<MangaImages>;
};
/**
 * Character Pictures
 */
export type PersonPictures = {
    data?: Array<PeopleImages>;
};
/**
 * Random Resources
 */
export type Random = {
    data?: Array<Anime | Manga | Character | Person>;
};
/**
 * Anime resources currently airing
 */
export type Schedules = {
    data?: Array<Anime>;
} & PaginationPlus;
/**
 * User Results
 */
export type UsersSearch = {
    data?: Array<{
        /**
         * MyAnimeList URL
         */
        url?: string;
        /**
         * MyAnimeList Username
         */
        username?: string;
        images?: UserImages;
        /**
         * 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 ReviewsCollection = {
    data?: Array<AnimeReview | MangaReview>;
};
/**
 * User Friends
 */
export type UserFriends = {
    data?: Array<{
        user?: UserMeta;
    } & {
        /**
         * Last Online Date ISO8601 format
         */
        last_online?: string;
        /**
         * Friends Since Date ISO8601 format
         */
        friends_since?: string;
    }>;
} & Pagination;
/**
 * User Clubs
 */
export type UserClubs = {
    data?: Array<{
        /**
         * MyAnimeList ID
         */
        mal_id?: number;
        /**
         * Club Name
         */
        name?: string;
        /**
         * Club URL
         */
        url?: string;
    }>;
} & Pagination;
/**
 * Watch Episodes
 */
export type WatchEpisodes = {
    data?: Array<{
        entry?: AnimeMeta;
        /**
         * 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 WatchPromos = Pagination & {
    data?: Array<{
        /**
         * Promo Title
         */
        title?: string;
        entry?: AnimeMeta;
        trailer?: Trailer;
    }>;
};
/**
 * Anime Characters Resource
 */
export type AnimeCharacters = {
    data?: Array<{
        /**
         * Character details
         */
        character?: {
            /**
             * MyAnimeList ID
             */
            mal_id?: number;
            /**
             * MyAnimeList URL
             */
            url?: string;
            images?: CharacterImages;
            /**
             * Character Name
             */
            name?: string;
        };
        /**
         * Character's Role
         */
        role?: string;
        voice_actors?: Array<{
            person?: {
                mal_id?: number;
                url?: string;
                images?: PeopleImages;
                name?: string;
            };
            language?: string;
        }>;
    }>;
};
/**
 * Anime Collection Resource
 */
export type AnimeSearch = {
    data?: Array<Anime>;
} & PaginationPlus;
/**
 * Anime Episode Resource
 */
export type AnimeEpisode = {
    /**
     * 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 AnimeFull = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * MyAnimeList URL
     */
    url?: string;
    images?: AnimeImages;
    trailer?: TrailerBase;
    /**
     * 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';
    /**
     * Original Material/Source adapted from
     */
    source?: string | null;
    /**
     * Episode count
     */
    episodes?: number | null;
    /**
     * Airing status
     */
    status?: 'Finished Airing' | 'Currently Airing' | 'Not yet aired';
    /**
     * 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';
    /**
     * 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';
    /**
     * Year
     */
    year?: number | null;
    broadcast?: Broadcast;
    producers?: Array<MalUrl>;
    licensors?: Array<MalUrl>;
    studios?: Array<MalUrl>;
    genres?: Array<MalUrl>;
    explicit_genres?: Array<MalUrl>;
    themes?: Array<MalUrl>;
    demographics?: Array<MalUrl>;
    relations?: Array<{
        /**
         * Relation type
         */
        relation?: string;
        entry?: Array<MalUrl>;
    }>;
    theme?: {
        openings?: Array<string>;
        endings?: Array<string>;
    };
    external?: Array<{
        name?: string;
        url?: string;
    }>;
    streaming?: Array<{
        name?: string;
        url?: string;
    }>;
};
/**
 * Anime Relations
 */
export type AnimeRelations = {
    data?: Array<{
        /**
         * Relation type
         */
        relation?: string;
        entry?: Array<MalUrl>;
    }>;
};
/**
 * Anime Resource
 */
export type Anime = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * MyAnimeList URL
     */
    url?: string;
    images?: AnimeImages;
    trailer?: TrailerBase;
    /**
     * 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';
    /**
     * Original Material/Source adapted from
     */
    source?: string | null;
    /**
     * Episode count
     */
    episodes?: number | null;
    /**
     * Airing status
     */
    status?: 'Finished Airing' | 'Currently Airing' | 'Not yet aired';
    /**
     * 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';
    /**
     * 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';
    /**
     * Year
     */
    year?: number | null;
    broadcast?: Broadcast;
    producers?: Array<MalUrl>;
    licensors?: Array<MalUrl>;
    studios?: Array<MalUrl>;
    genres?: Array<MalUrl>;
    explicit_genres?: Array<MalUrl>;
    themes?: Array<MalUrl>;
    demographics?: Array<MalUrl>;
};
/**
 * Anime Staff Resource
 */
export type AnimeStaff = {
    data?: Array<{
        /**
         * Person details
         */
        person?: {
            /**
             * MyAnimeList ID
             */
            mal_id?: number;
            /**
             * MyAnimeList URL
             */
            url?: string;
            images?: PeopleImages;
            /**
             * Name
             */
            name?: string;
        };
        /**
         * Staff Positions
         */
        positions?: Array<string>;
    }>;
};
/**
 * Anime Statistics Resource
 */
export type AnimeStatistics = {
    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 AnimeThemes = {
    data?: {
        openings?: Array<string>;
        endings?: Array<string>;
    };
};
/**
 * Anime Videos Resource
 */
export type AnimeVideos = {
    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?: CommonImages;
        }>;
        music_videos?: Array<{
            /**
             * Title
             */
            title?: string;
            video?: Trailer;
            meta?: {
                title?: string | null;
                author?: string | null;
            };
        }>;
    };
};
/**
 * Character casted in anime
 */
export type CharacterAnime = {
    data?: Array<{
        /**
         * Character's Role
         */
        role?: string;
        anime?: AnimeMeta;
    }>;
};
/**
 * Characters Search Resource
 */
export type CharactersSearch = {
    data?: Array<Character>;
} & PaginationPlus;
/**
 * Character Resource
 */
export type CharacterFull = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * MyAnimeList URL
     */
    url?: string;
    images?: CharacterImages;
    /**
     * 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?: AnimeMeta;
    }>;
    manga?: Array<{
        /**
         * Character's Role
         */
        role?: string;
        manga?: MangaMeta;
    }>;
    voices?: Array<{
        /**
         * Character's Role
         */
        language?: string;
        person?: PersonMeta;
    }>;
};
/**
 * Character casted in manga
 */
export type CharacterManga = {
    data?: Array<{
        /**
         * Character's Role
         */
        role?: string;
        manga?: MangaMeta;
    }>;
};
/**
 * Character Resource
 */
export type Character = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * MyAnimeList URL
     */
    url?: string;
    images?: CharacterImages;
    /**
     * 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 CharacterVoiceActors = {
    data?: Array<{
        /**
         * Character's Role
         */
        language?: string;
        person?: PersonMeta;
    }>;
};
/**
 * Clubs Search Resource
 */
export type ClubsSearch = {
    data?: Array<Club>;
} & Pagination;
/**
 * Club Relations
 */
export type ClubRelations = {
    data?: {
        anime?: Array<MalUrl>;
        manga?: Array<MalUrl>;
        characters?: Array<MalUrl>;
    };
};
/**
 * Club Resource
 */
export type Club = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * Club name
     */
    name?: string;
    /**
     * Club URL
     */
    url?: string;
    images?: CommonImages;
    /**
     * 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 Staff Resource
 */
export type ClubStaff = {
    data?: Array<{
        /**
         * User URL
         */
        url?: string;
        /**
         * User's username
         */
        username?: string;
    }>;
};
/**
 * Youtube Details
 */
export type Trailer = TrailerBase & TrailerImages;
/**
 * Youtube Details
 */
export type TrailerBase = {
    /**
     * YouTube ID
     */
    youtube_id?: string | null;
    /**
     * YouTube URL
     */
    url?: string | null;
    /**
     * Parsed Embed URL
     */
    embed_url?: string | null;
};
/**
 * Youtube Images
 */
export type TrailerImages = {
    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 MalUrl = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * Type of resource
     */
    type?: string;
    /**
     * Resource Name/Title
     */
    name?: string;
    /**
     * MyAnimeList URL
     */
    url?: string;
};
/**
 * Parsed URL Data
 */
export type MalUrl2 = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * Type of resource
     */
    type?: string;
    /**
     * Resource Name/Title
     */
    title?: string;
    /**
     * MyAnimeList URL
     */
    url?: string;
};
/**
 * Entry Meta data
 */
export type EntryMeta = {
    /**
     * 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<MalUrl>;
};
export type Pagination = {
    pagination?: {
        last_visible_page?: number;
        has_next_page?: boolean;
    };
};
export type PaginationPlus = {
    pagination?: {
        last_visible_page?: number;
        has_next_page?: boolean;
        current_page?: number;
        items?: {
            count?: number;
            total?: number;
            per_page?: number;
        };
    };
};
export type UserMeta = {
    /**
     * MyAnimeList Username
     */
    username?: string;
    /**
     * MyAnimeList Profile URL
     */
    url?: string;
    images?: UserImages;
};
/**
 * User Meta By ID
 */
export type UserById = {
    /**
     * MyAnimeList URL
     */
    url?: string;
    /**
     * MyAnimeList Username
     */
    username?: string;
};
export type UserImages = {
    /**
     * 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 AnimeMeta = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * MyAnimeList URL
     */
    url?: string;
    images?: AnimeImages;
    /**
     * Entry title
     */
    title?: string;
};
export type MangaMeta = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * MyAnimeList URL
     */
    url?: string;
    images?: MangaImages;
    /**
     * Entry title
     */
    title?: string;
};
export type CharacterMeta = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * MyAnimeList URL
     */
    url?: string;
    images?: CharacterImages;
    /**
     * Entry name
     */
    name?: string;
};
export type PersonMeta = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * MyAnimeList URL
     */
    url?: string;
    images?: PeopleImages;
    /**
     * Entry name
     */
    name?: string;
};
export type AnimeImages = {
    /**
     * 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 MangaImages = {
    /**
     * 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 CharacterImages = {
    /**
     * 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 PeopleImages = {
    /**
     * Available images in JPG
     */
    jpg?: {
        /**
         * Image URL JPG
         */
        image_url?: string | null;
    };
};
export type CommonImages = {
    /**
     * 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 ExternalLinks = {
    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 MangaCharacters = {
    data?: Array<{
        character?: CharacterMeta;
        /**
         * Character's Role
         */
        role?: string;
    }>;
};
/**
 * Manga Search Resource
 */
export type MangaSearch = {
    data?: Array<Manga>;
} & PaginationPlus;
/**
 * Manga Resource
 */
export type MangaFull = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * MyAnimeList URL
     */
    url?: string;
    images?: MangaImages;
    /**
     * 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';
    /**
     * 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<MalUrl>;
    serializations?: Array<MalUrl>;
    genres?: Array<MalUrl>;
    explicit_genres?: Array<MalUrl>;
    themes?: Array<MalUrl>;
    demographics?: Array<MalUrl>;
    relations?: Array<{
        /**
         * Relation type
         */
        relation?: string;
        entry?: Array<MalUrl>;
    }>;
    external?: Array<{
        name?: string;
        url?: string;
    }>;
};
/**
 * Manga Resource
 */
export type Manga = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * MyAnimeList URL
     */
    url?: string;
    images?: MangaImages;
    /**
     * 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';
    /**
     * 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<MalUrl>;
    serializations?: Array<MalUrl>;
    genres?: Array<MalUrl>;
    explicit_genres?: Array<MalUrl>;
    themes?: Array<MalUrl>;
    demographics?: Array<MalUrl>;
};
/**
 * Manga Statistics Resource
 */
export type MangaStatistics = {
    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?: CommonImages;
        /**
         * Comment count
         */
        comments?: number;
        /**
         * Excerpt
         */
        excerpt?: string;
    }>;
};
/**
 * Person anime staff positions
 */
export type PersonAnime = {
    data?: Array<{
        /**
         * Person's position
         */
        position?: string;
        anime?: AnimeMeta;
    }>;
};
/**
 * People Search
 */
export type PeopleSearch = {
    data?: Array<Person>;
} & PaginationPlus;
/**
 * Person Resource
 */
export type PersonFull = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * MyAnimeList URL
     */
    url?: string;
    /**
     * Person's website URL
     */
    website_url?: string | null;
    images?: PeopleImages;
    /**
     * 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?: AnimeMeta;
    }>;
    manga?: Array<{
        /**
         * Person's position
         */
        position?: string;
        manga?: MangaMeta;
    }>;
    voices?: Array<{
        /**
         * Person's Character's role in the anime
         */
        role?: string;
        anime?: AnimeMeta;
        character?: CharacterMeta;
    }>;
};
/**
 * Person's mangaography
 */
export type PersonManga = {
    data?: Array<{
        /**
         * Person's position
         */
        position?: string;
        manga?: MangaMeta;
    }>;
};
/**
 * Person Resource
 */
export type Person = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * MyAnimeList URL
     */
    url?: string;
    /**
     * Person's website URL
     */
    website_url?: string | null;
    images?: PeopleImages;
    /**
     * 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 PersonVoiceActingRoles = {
    data?: Array<{
        /**
         * Person's Character's role in the anime
         */
        role?: string;
        anime?: AnimeMeta;
        character?: CharacterMeta;
    }>;
};
/**
 * Pictures Resource
 */
export type Pictures = {
    data?: Array<{
        images?: AnimeImages;
    }>;
};
/**
 * Pictures Resource
 */
export type PicturesVariants = {
    data?: Array<{
        images?: CommonImages;
    }>;
};
/**
 * Producers Collection Resource
 */
export type Producers = {
    data?: Array<Producer>;
} & Pagination;
/**
 * Producers Resource
 */
export type ProducerFull = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number;
    /**
     * MyAnimeList URL
     */
    url?: string;
    /**
     * All titles
     */
    titles?: Array<Title>;
    images?: CommonImages;
    /**
     * 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?: CommonImages;
    /**
     * 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 UserAbout = {
    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 UserFavorites = {
    /**
     * Favorite Anime
     */
    anime?: Array<{
        type?: string;
        start_year?: number;
    } & AnimeMeta>;
    /**
     * Favorite Manga
     */
    manga?: Array<{
        type?: string;
        start_year?: number;
    } & MangaMeta>;
    /**
     * Favorite Characters
     */
    characters?: Array<CharacterMeta & MalUrl2>;
    /**
     * Favorite People
     */
    people?: Array<CharacterMeta>;
};
/**
 * Transform the resource into an array.
 */
export type UserProfileFull = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number | null;
    /**
     * MyAnimeList Username
     */
    username?: string;
    /**
     * MyAnimeList URL
     */
    url?: string;
    images?: UserImages;
    /**
     * 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 UserHistory = {
    data?: Array<History>;
};
/**
 * Transform the resource into an array.
 */
export type History = {
    entry?: MalUrl;
    /**
     * Number of episodes/chapters watched/read
     */
    increment?: number;
    /**
     * Date ISO8601
     */
    date?: string;
};
export type UserUpdates = {
    data?: {
        /**
         * Last updated Anime
         */
        anime?: Array<{
            entry?: AnimeMeta;
        } & {
            score?: number | null;
            status?: string;
            episodes_seen?: number | null;
            episodes_total?: number | null;
            /**
             * ISO8601 format
             */
            date?: string;
        }>;
        /**
         * Last updated Manga
         */
        manga?: Array<{
            entry?: MangaMeta;
        } & {
            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 UserProfile = {
    /**
     * MyAnimeList ID
     */
    mal_id?: number | null;
    /**
     * MyAnimeList Username
     */
    username?: string;
    /**
     * MyAnimeList URL
     */
    url?: string;
    images?: UserImages;
    /**
     * 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 UsersTemp = {
    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<EntryMeta>;
            /**
             * Favorite Manga
             */
            manga?: Array<EntryMeta>;
            /**
             * Favorite Characters
             */
            characters?: Array<EntryMeta>;
            /**
             * Favorite People
             */
            people?: Array<EntryMeta>;
        };
        /**
         * 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 UserStatistics = {
    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<AnimeMeta | MangaMeta>;
        /**
         * Recommendation context provided by the user
         */
        content?: string;
        user?: UserById;
    }>;
} & Pagination;
/**
 * Entry Recommendations Resource
 */
export type EntryRecommendations = {
    data?: Array<{
        entry?: AnimeMeta | MangaMeta;
    }>;
};
export type MangaReview = {
    /**
     * 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 AnimeReview = {
    /**
     * 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 AnimeReviews = {
    data?: Array<{
        user?: UserMeta;
    } & AnimeReview>;
} & Pagination;
/**
 * Manga Reviews Resource
 */
export type MangaReviews = {
    data?: Array<{
        user?: UserMeta;
    } & MangaReview>;
} & Pagination;
/**
 * Streaming links
 */
export type StreamingLinks = {
    data?: Array<{
        name?: string;
        url?: string;
    }>;
};
/**
 * Anime User Updates Resource
 */
export type AnimeUserupdates = {
    data?: Array<{
        user?: UserMeta;
        /**
         * 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 MangaUserupdates = {
    data?: Array<{
        user?: UserMeta;
        /**
         * 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 Continuing = 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 Kids = boolean;
export type Limit = number;
export type 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`
 */
export type Preliminary = 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 Sfw = boolean;
/**
 * Any reviews that are tagged as a spoiler. Spoiler reviews are not returned by default. e.g usage: `?spoiler=true`
 */
export type Spoilers = 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 Unapproved = boolean;
export type GetAnimeFullByIdData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/anime/{id}/full';
};
export type GetAnimeFullByIdErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetAnimeFullByIdResponses = {
    /**
     * Returns complete anime resource data
     */
    200: {
        data?: AnimeFull;
    };
};
export type GetAnimeFullByIdResponse = GetAnimeFullByIdResponses[keyof GetAnimeFullByIdResponses];
export type GetAnimeByIdData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/anime/{id}';
};
export type GetAnimeByIdErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetAnimeByIdResponses = {
    /**
     * Returns anime resource
     */
    200: {
        data?: Anime;
    };
};
export type GetAnimeByIdResponse = GetAnimeByIdResponses[keyof GetAnimeByIdResponses];
export type GetAnimeCharactersData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/anime/{id}/characters';
};
export type GetAnimeCharactersErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetAnimeCharactersResponses = {
    /**
     * Returns anime characters resource
     */
    200: AnimeCharacters;
};
export type GetAnimeCharactersResponse = GetAnimeCharactersResponses[keyof GetAnimeCharactersResponses];
export type GetAnimeStaffData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/anime/{id}/staff';
};
export type GetAnimeStaffErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetAnimeStaffResponses = {
    /**
     * Returns anime staff resource
     */
    200: AnimeStaff;
};
export type GetAnimeStaffResponse = GetAnimeStaffResponses[keyof GetAnimeStaffResponses];
export type GetAnimeEpisodesData = {
    body?: never;
    path: {
        id: number;
    };
    query?: {
        page?: number;
    };
    url: '/anime/{id}/episodes';
};
export type GetAnimeEpisodesErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetAnimeEpisodesResponses = {
    /**
     * Returns a list of anime episodes
     */
    200: AnimeEpisodes;
};
export type GetAnimeEpisodesResponse = GetAnimeEpisodesResponses[keyof GetAnimeEpisodesResponses];
export type GetAnimeEpisodeByIdData = {
    body?: never;
    path: {
        id: number;
        episode: number;
    };
    query?: never;
    url: '/anime/{id}/episodes/{episode}';
};
export type GetAnimeEpisodeByIdErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetAnimeEpisodeByIdResponses = {
    /**
     * Returns a single anime episode resource
     */
    200: {
        data?: AnimeEpisode;
    };
};
export type GetAnimeEpisodeByIdResponse = GetAnimeEpisodeByIdResponses[keyof GetAnimeEpisodeByIdResponses];
export type GetAnimeNewsData = {
    body?: never;
    path: {
        id: number;
    };
    query?: {
        page?: number;
    };
    url: '/anime/{id}/news';
};
export type GetAnimeNewsErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetAnimeNewsResponses = {
    /**
     * Returns a list of news articles related to the entry
     */
    200: AnimeNews;
};
export type GetAnimeNewsResponse = GetAnimeNewsResponses[keyof GetAnimeNewsResponses];
export type GetAnimeForumData = {
    body?: never;
    path: {
        id: number;
    };
    query?: {
        /**
         * Filter topics
         */
        filter?: 'all' | 'episode' | 'other';
    };
    url: '/anime/{id}/forum';
};
export type GetAnimeForumErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetAnimeForumResponses = {
    /**
     * Returns a list of forum topics related to the entry
     */
    200: Forum;
};
export type GetAnimeForumResponse = GetAnimeForumResponses[keyof GetAnimeForumResponses];
export type GetAnimeVideosData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/anime/{id}/videos';
};
export type GetAnimeVideosErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetAnimeVideosResponses = {
    /**
     * Returns videos related to the entry
     */
    200: AnimeVideos;
};
export type GetAnimeVideosResponse = GetAnimeVideosResponses[keyof GetAnimeVideosResponses];
export type GetAnimeVideosEpisodesData = {
    body?: never;
    path: {
        id: number;
    };
    query?: {
        page?: number;
    };
    url: '/anime/{id}/videos/episodes';
};
export type GetAnimeVideosEpisodesErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetAnimeVideosEpisodesResponses = {
    /**
     * Returns episode videos related to the entry
     */
    200: AnimeVideosEpisodes;
};
export type GetAnimeVideosEpisodesResponse = GetAnimeVideosEpisodesResponses[keyof GetAnimeVideosEpisodesResponses];
export type GetAnimePicturesData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/anime/{id}/pictures';
};
export type GetAnimePicturesErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetAnimePicturesResponses = {
    /**
     * Returns pictures related to the entry
     */
    200: PicturesVariants;
};
export type GetAnimePicturesResponse = GetAnimePicturesResponses[keyof GetAnimePicturesResponses];
export type GetAnimeStatisticsData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/anime/{id}/statistics';
};
export type GetAnimeStatisticsErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetAnimeStatisticsResponses = {
    /**
     * Returns anime statistics
     */
    200: AnimeStatistics;
};
export type GetAnimeStatisticsResponse = GetAnimeStatisticsResponses[keyof GetAnimeStatisticsResponses];
export type GetAnimeMoreInfoData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/anime/{id}/moreinfo';
};
export type GetAnimeMoreInfoErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetAnimeMoreInfoResponses = {
    /**
     * Returns anime statistics
     */
    200: Moreinfo;
};
export type GetAnimeMoreInfoResponse = GetAnimeMoreInfoResponses[keyof GetAnimeMoreInfoResponses];
export type GetAnimeRecommendationsData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/anime/{id}/recommendations';
};
export type GetAnimeRecommendationsErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetAnimeRecommendationsResponses = {
    /**
     * Returns anime recommendations
     */
    200: EntryRecommendations;
};
export type GetAnimeRecommendationsResponse = GetAnimeRecommendationsResponses[keyof GetAnimeRecommendationsResponses];
export type GetAnimeUserUpdatesData = {
    body?: never;
    path: {
        id: number;
    };
    query?: {
        page?: number;
    };
    url: '/anime/{id}/userupdates';
};
export type GetAnimeUserUpdatesErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetAnimeUserUpdatesResponses = {
    /**
     * Returns a list of users who have added/updated/removed the entry on their list
     */
    200: AnimeUserupdates;
};
export type GetAnimeUserUpdatesResponse = GetAnimeUserUpdatesResponses[keyof GetAnimeUserUpdatesResponses];
export type GetAnimeReviewsData = {
    body?: never;
    path: {
        id: number;
    };
    query?: {
        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;
    };
    url: '/anime/{id}/reviews';
};
export type GetAnimeReviewsErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetAnimeReviewsResponses = {
    /**
     * Returns anime reviews
     */
    200: AnimeReviews;
};
export type GetAnimeReviewsResponse = GetAnimeReviewsResponses[keyof GetAnimeReviewsResponses];
export type GetAnimeRelationsData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/anime/{id}/relations';
};
export type GetAnimeRelationsResponses = {
    /**
     * Returns anime relations
     */
    200: {
        data?: Array<Relation>;
    };
};
export type GetAnimeRelationsResponse = GetAnimeRelationsResponses[keyof GetAnimeRelationsResponses];
export type GetAnimeThemesData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/anime/{id}/themes';
};
export type GetAnimeThemesErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetAnimeThemesResponses = {
    /**
     * Returns anime themes
     */
    200: AnimeThemes;
};
export type GetAnimeThemesResponse = GetAnimeThemesResponses[keyof GetAnimeThemesResponses];
export type GetAnimeExternalData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/anime/{id}/external';
};
export type GetAnimeExternalErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetAnimeExternalResponses = {
    /**
     * Returns anime external links
     */
    200: ExternalLinks;
};
export type GetAnimeExternalResponse = GetAnimeExternalResponses[keyof GetAnimeExternalResponses];
export type GetAnimeStreamingData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/anime/{id}/streaming';
};
export type GetAnimeStreamingErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetAnimeStreamingResponses = {
    /**
     * Returns anime streaming links
     */
    200: ExternalLinks;
};
export type GetAnimeStreamingResponse = GetAnimeStreamingResponses[keyof GetAnimeStreamingResponses];
export type GetCharacterFullByIdData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/characters/{id}/full';
};
export type GetCharacterFullByIdErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetCharacterFullByIdResponses = {
    /**
     * Returns complete character resource data
     */
    200: {
        data?: CharacterFull;
    };
};
export type GetCharacterFullByIdResponse = GetCharacterFullByIdResponses[keyof GetCharacterFullByIdResponses];
export type GetCharacterByIdData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/characters/{id}';
};
export type GetCharacterByIdErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetCharacterByIdResponses = {
    /**
     * Returns character resource
     */
    200: {
        data?: Character;
    };
};
export type GetCharacterByIdResponse = GetCharacterByIdResponses[keyof GetCharacterByIdResponses];
export type GetCharacterAnimeData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/characters/{id}/anime';
};
export type GetCharacterAnimeErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetCharacterAnimeResponses = {
    /**
     * Returns anime that character is in
     */
    200: CharacterAnime;
};
export type GetCharacterAnimeResponse = GetCharacterAnimeResponses[keyof GetCharacterAnimeResponses];
export type GetCharacterMangaData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/characters/{id}/manga';
};
export type GetCharacterMangaErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetCharacterMangaResponses = {
    /**
     * Returns manga that character is in
     */
    200: CharacterManga;
};
export type GetCharacterMangaResponse = GetCharacterMangaResponses[keyof GetCharacterMangaResponses];
export type GetCharacterVoiceActorsData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/characters/{id}/voices';
};
export type GetCharacterVoiceActorsErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetCharacterVoiceActorsResponses = {
    /**
     * Returns the character's voice actors
     */
    200: CharacterVoiceActors;
};
export type GetCharacterVoiceActorsResponse = GetCharacterVoiceActorsResponses[keyof GetCharacterVoiceActorsResponses];
export type GetCharacterPicturesData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/characters/{id}/pictures';
};
export type GetCharacterPicturesErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetCharacterPicturesResponses = {
    /**
     * Returns pictures related to the entry
     */
    200: CharacterPictures;
};
export type GetCharacterPicturesResponse = GetCharacterPicturesResponses[keyof GetCharacterPicturesResponses];
export type GetClubsByIdData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/clubs/{id}';
};
export type GetClubsByIdErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetClubsByIdResponses = {
    /**
     * Returns Club Resource
     */
    200: {
        data?: Club;
    };
};
export type GetClubsByIdResponse = GetClubsByIdResponses[keyof GetClubsByIdResponses];
export type GetClubMembersData = {
    body?: never;
    path: {
        id: number;
    };
    query?: {
        page?: number;
    };
    url: '/clubs/{id}/members';
};
export type GetClubMembersErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetClubMembersResponses = {
    /**
     * Returns Club Members Resource
     */
    200: Pagination & ClubMember;
};
export type GetClubMembersResponse = GetClubMembersResponses[keyof GetClubMembersResponses];
export type GetClubStaffData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/clubs/{id}/staff';
};
export type GetClubStaffErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetClubStaffResponses = {
    /**
     * Returns Club Staff
     */
    200: ClubStaff;
};
export type GetClubStaffResponse = GetClubStaffResponses[keyof GetClubStaffResponses];
export type GetClubRelationsData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/clubs/{id}/relations';
};
export type GetClubRelationsErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetClubRelationsResponses = {
    /**
     * Returns Club Relations
     */
    200: ClubRelations;
};
export type GetClubRelationsResponse = GetClubRelationsResponses[keyof GetClubRelationsResponses];
export type GetAnimeGenresData = {
    body?: never;
    path?: never;
    query?: {
        filter?: GenreQueryFilter;
    };
    url: '/genres/anime';
};
export type GetAnimeGenresErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetAnimeGenresResponses = {
    /**
     * Returns entry genres, explicit_genres, themes and demographics
     */
    200: Genres;
};
export type GetAnimeGenresResponse = GetAnimeGenresResponses[keyof GetAnimeGenresResponses];
export type GetMangaGenresData = {
    body?: never;
    path?: never;
    query?: {
        filter?: GenreQueryFilter;
    };
    url: '/genres/manga';
};
export type GetMangaGenresErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetMangaGenresResponses = {
    /**
     * Returns entry genres, explicit_genres, themes and demographics
     */
    200: Genres;
};
export type GetMangaGenresResponse = GetMangaGenresResponses[keyof GetMangaGenresResponses];
export type GetMagazinesData = {
    body?: never;
    path?: never;
    query?: {
        page?: number;
        limit?: number;
        q?: string;
        order_by?: MagazinesQueryOrderby;
        sort?: SearchQuerySort;
        /**
         * Return entries starting with the given letter
         */
        letter?: string;
    };
    url: '/magazines';
};
export type GetMagazinesErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetMagazinesResponses = {
    /**
     * Returns magazines collection
     */
    200: Magazines;
};
export type GetMagazinesResponse = GetMagazinesResponses[keyof GetMagazinesResponses];
export type GetMangaFullByIdData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/manga/{id}/full';
};
export type GetMangaFullByIdErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetMangaFullByIdResponses = {
    /**
     * Returns complete manga resource data
     */
    200: {
        data?: MangaFull;
    };
};
export type GetMangaFullByIdResponse = GetMangaFullByIdResponses[keyof GetMangaFullByIdResponses];
export type GetMangaByIdData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/manga/{id}';
};
export type GetMangaByIdErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetMangaByIdResponses = {
    /**
     * Returns pictures related to the entry
     */
    200: {
        data?: Manga;
    };
};
export type GetMangaByIdResponse = GetMangaByIdResponses[keyof GetMangaByIdResponses];
export type GetMangaCharactersData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/manga/{id}/characters';
};
export type GetMangaCharactersErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetMangaCharactersResponses = {
    /**
     * Returns manga characters resource
     */
    200: MangaCharacters;
};
export type GetMangaCharactersResponse = GetMangaCharactersResponses[keyof GetMangaCharactersResponses];
export type GetMangaNewsData = {
    body?: never;
    path: {
        id: number;
    };
    query?: {
        page?: number;
    };
    url: '/manga/{id}/news';
};
export type GetMangaNewsErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetMangaNewsResponses = {
    /**
     * Returns a list of manga news topics
     */
    200: MangaNews;
};
export type GetMangaNewsResponse = GetMangaNewsResponses[keyof GetMangaNewsResponses];
export type GetMangaTopicsData = {
    body?: never;
    path: {
        id: number;
    };
    query?: {
        /**
         * Filter topics
         */
        filter?: 'all' | 'episode' | 'other';
    };
    url: '/manga/{id}/forum';
};
export type GetMangaTopicsErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetMangaTopicsResponses = {
    /**
     * Returns a list of manga forum topics
     */
    200: Forum;
};
export type GetMangaTopicsResponse = GetMangaTopicsResponses[keyof GetMangaTopicsResponses];
export type GetMangaPicturesData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/manga/{id}/pictures';
};
export type GetMangaPicturesErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetMangaPicturesResponses = {
    /**
     * Returns a list of manga pictures
     */
    200: MangaPictures;
};
export type GetMangaPicturesResponse = GetMangaPicturesResponses[keyof GetMangaPicturesResponses];
export type GetMangaStatisticsData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/manga/{id}/statistics';
};
export type GetMangaStatisticsErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetMangaStatisticsResponses = {
    /**
     * Returns anime statistics
     */
    200: MangaStatistics;
};
export type GetMangaStatisticsResponse = GetMangaStatisticsResponses[keyof GetMangaStatisticsResponses];
export type GetMangaMoreInfoData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/manga/{id}/moreinfo';
};
export type GetMangaMoreInfoErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetMangaMoreInfoResponses = {
    /**
     * Returns manga moreinfo
     */
    200: Moreinfo;
};
export type GetMangaMoreInfoResponse = GetMangaMoreInfoResponses[keyof GetMangaMoreInfoResponses];
export type GetMangaRecommendationsData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/manga/{id}/recommendations';
};
export type GetMangaRecommendationsErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetMangaRecommendationsResponses = {
    /**
     * Returns manga recommendations
     */
    200: EntryRecommendations;
};
export type GetMangaRecommendationsResponse = GetMangaRecommendationsResponses[keyof GetMangaRecommendationsResponses];
export type GetMangaUserUpdatesData = {
    body?: never;
    path: {
        id: number;
    };
    query?: {
        page?: number;
    };
    url: '/manga/{id}/userupdates';
};
export type GetMangaUserUpdatesErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetMangaUserUpdatesResponses = {
    /**
     * Returns manga user updates
     */
    200: MangaUserupdates;
};
export type GetMangaUserUpdatesResponse = GetMangaUserUpdatesResponses[keyof GetMangaUserUpdatesResponses];
export type GetMangaReviewsData = {
    body?: never;
    path: {
        id: number;
    };
    query?: {
        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;
    };
    url: '/manga/{id}/reviews';
};
export type GetMangaReviewsErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetMangaReviewsResponses = {
    /**
     * Returns manga reviews
     */
    200: MangaReviews;
};
export type GetMangaReviewsResponse = GetMangaReviewsResponses[keyof GetMangaReviewsResponses];
export type GetMangaRelationsData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/manga/{id}/relations';
};
export type GetMangaRelationsErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetMangaRelationsResponses = {
    /**
     * Returns manga relations
     */
    200: {
        data?: Array<Relation>;
    };
};
export type GetMangaRelationsResponse = GetMangaRelationsResponses[keyof GetMangaRelationsResponses];
export type GetMangaExternalData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/manga/{id}/external';
};
export type GetMangaExternalErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetMangaExternalResponses = {
    /**
     * Returns manga external links
     */
    200: ExternalLinks;
};
export type GetMangaExternalResponse = GetMangaExternalResponses[keyof GetMangaExternalResponses];
export type GetPersonFullByIdData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/people/{id}/full';
};
export type GetPersonFullByIdErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetPersonFullByIdResponses = {
    /**
     * Returns complete character resource data
     */
    200: {
        data?: PersonFull;
    };
};
export type GetPersonFullByIdResponse = GetPersonFullByIdResponses[keyof GetPersonFullByIdResponses];
export type GetPersonByIdData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/people/{id}';
};
export type GetPersonByIdErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetPersonByIdResponses = {
    /**
     * Returns pictures related to the entry
     */
    200: {
        data?: Person;
    };
};
export type GetPersonByIdResponse = GetPersonByIdResponses[keyof GetPersonByIdResponses];
export type GetPersonAnimeData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/people/{id}/anime';
};
export type GetPersonAnimeErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetPersonAnimeResponses = {
    /**
     * Returns person's anime staff positions
     */
    200: PersonAnime;
};
export type GetPersonAnimeResponse = GetPersonAnimeResponses[keyof GetPersonAnimeResponses];
export type GetPersonVoicesData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/people/{id}/voices';
};
export type GetPersonVoicesErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetPersonVoicesResponses = {
    /**
     * Returns person's voice acting roles
     */
    200: PersonVoiceActingRoles;
};
export type GetPersonVoicesResponse = GetPersonVoicesResponses[keyof GetPersonVoicesResponses];
export type GetPersonMangaData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/people/{id}/manga';
};
export type GetPersonMangaErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetPersonMangaResponses = {
    /**
     * Returns person's published manga works
     */
    200: PersonManga;
};
export type GetPersonMangaResponse = GetPersonMangaResponses[keyof GetPersonMangaResponses];
export type GetPersonPicturesData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/people/{id}/pictures';
};
export type GetPersonPicturesErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetPersonPicturesResponses = {
    /**
     * Returns a list of pictures of the person
     */
    200: PersonPictures;
};
export type GetPersonPicturesResponse = GetPersonPicturesResponses[keyof GetPersonPicturesResponses];
export type GetProducerByIdData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/producers/{id}';
};
export type GetProducerByIdErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetProducerByIdResponses = {
    /**
     * Returns producer resource
     */
    200: {
        data?: Producer;
    };
};
export type GetProducerByIdResponse = GetProducerByIdResponses[keyof GetProducerByIdResponses];
export type GetProducerFullByIdData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/producers/{id}/full';
};
export type GetProducerFullByIdErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetProducerFullByIdResponses = {
    /**
     * Returns producer resource
     */
    200: {
        data?: ProducerFull;
    };
};
export type GetProducerFullByIdResponse = GetProducerFullByIdResponses[keyof GetProducerFullByIdResponses];
export type GetProducerExternalData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/producers/{id}/external';
};
export type GetProducerExternalErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetProducerExternalResponses = {
    /**
     * Returns producer's external links
     */
    200: ExternalLinks;
};
export type GetProducerExternalResponse = GetProducerExternalResponses[keyof GetProducerExternalResponses];
export type GetRandomAnimeData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/random/anime';
};
export type GetRandomAnimeErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetRandomAnimeResponses = {
    /**
     * Returns a random anime resource
     */
    200: {
        data?: Anime;
    };
};
export type GetRandomAnimeResponse = GetRandomAnimeResponses[keyof GetRandomAnimeResponses];
export type GetRandomMangaData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/random/manga';
};
export type GetRandomMangaErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetRandomMangaResponses = {
    /**
     * Returns a random manga resource
     */
    200: {
        data?: Manga;
    };
};
export type GetRandomMangaResponse = GetRandomMangaResponses[keyof GetRandomMangaResponses];
export type GetRandomCharactersData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/random/characters';
};
export type GetRandomCharactersErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetRandomCharactersResponses = {
    /**
     * Returns a random character resource
     */
    200: {
        data?: Character;
    };
};
export type GetRandomCharactersResponse = GetRandomCharactersResponses[keyof GetRandomCharactersResponses];
export type GetRandomPeopleData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/random/people';
};
export type GetRandomPeopleErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetRandomPeopleResponses = {
    /**
     * Returns a random person resource
     */
    200: {
        data?: Person;
    };
};
export type GetRandomPeopleResponse = GetRandomPeopleResponses[keyof GetRandomPeopleResponses];
export type GetRandomUsersData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/random/users';
};
export type GetRandomUsersErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetRandomUsersResponses = {
    /**
     * Returns a random user profile resource
     */
    200: {
        data?: UserProfile;
    };
};
export type GetRandomUsersResponse = GetRandomUsersResponses[keyof GetRandomUsersResponses];
export type GetRecentAnimeRecommendationsData = {
    body?: never;
    path?: never;
    query?: {
        page?: number;
    };
    url: '/recommendations/anime';
};
export type GetRecentAnimeRecommendationsErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetRecentAnimeRecommendationsResponses = {
    /**
     * Returns recent anime recommendations
     */
    200: Recommendations;
};
export type GetRecentAnimeRecommendationsResponse = GetRecentAnimeRecommendationsResponses[keyof GetRecentAnimeRecommendationsResponses];
export type GetRecentMangaRecommendationsData = {
    body?: never;
    path?: never;
    query?: {
        page?: number;
    };
    url: '/recommendations/manga';
};
export type GetRecentMangaRecommendationsErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetRecentMangaRecommendationsResponses = {
    /**
     * Returns recent manga recommendations
     */
    200: Recommendations;
};
export type GetRecentMangaRecommendationsResponse = GetRecentMangaRecommendationsResponses[keyof GetRecentMangaRecommendationsResponses];
export type GetRecentAnimeReviewsData = {
    body?: never;
    path?: never;
    query?: {
        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;
    };
    url: '/reviews/anime';
};
export type GetRecentAnimeReviewsErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetRecentAnimeReviewsResponses = {
    /**
     * Returns recent anime reviews
     */
    200: unknown;
};
export type GetRecentMangaReviewsData = {
    body?: never;
    path?: never;
    query?: {
        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;
    };
    url: '/reviews/manga';
};
export type GetRecentMangaReviewsErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetRecentMangaReviewsResponses = {
    /**
     * Returns recent manga reviews
     */
    200: unknown;
};
export type GetSchedulesData = {
    body?: never;
    path?: never;
    query?: {
        /**
         * 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';
        /**
         * '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;
        page?: number;
        limit?: number;
    };
    url: '/schedules';
};
export type GetSchedulesErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetSchedulesResponses = {
    /**
     * Returns weekly schedule
     */
    200: Schedules;
};
export type GetSchedulesResponse = GetSchedulesResponses[keyof GetSchedulesResponses];
export type GetAnimeSearchData = {
    body?: never;
    path?: never;
    query?: {
        /**
         * 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;
        page?: number;
        limit?: number;
        q?: string;
        type?: AnimeSearchQueryType;
        score?: number;
        /**
         * Set a minimum score for results.
         */
        min_score?: number;
        /**
         * Set a maximum score for results
         */
        max_score?: number;
        status?: AnimeSearchQueryStatus;
        rating?: AnimeSearchQueryRating;
        /**
         * Filter out Adult entries
         */
        sfw?: boolean;
        /**
         * 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
         */
        genres_exclude?: string;
        order_by?: AnimeSearchQueryOrderby;
        sort?: SearchQuerySort;
        /**
         * Return entries starting with the given letter
         */
        letter?: string;
        /**
         * Filter by producer(s) IDs. Can pass multiple with a comma as a delimiter. e.g 1,2,3
         */
        producers?: string;
        /**
         * Filter by starting date. Format: YYYY-MM-DD. e.g `2022`, `2005-05`, `2005-01-01`
         */
        start_date?: string;
        /**
         * Filter by ending date. Format: YYYY-MM-DD. e.g `2022`, `2005-05`, `2005-01-01`
         */
        end_date?: string;
    };
    url: '/anime';
};
export type GetAnimeSearchErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetAnimeSearchResponses = {
    /**
     * Returns search results for anime
     */
    200: AnimeSearch;
};
export type GetAnimeSearchResponse = GetAnimeSearchResponses[keyof GetAnimeSearchResponses];
export type GetMangaSearchData = {
    body?: never;
    path?: never;
    query?: {
        /**
         * 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;
        page?: number;
        limit?: number;
        q?: string;
        type?: MangaSearchQueryType;
        score?: number;
        /**
         * Set a minimum score for results.
         */
        min_score?: number;
        /**
         * Set a maximum score for results
         */
        max_score?: number;
        status?: MangaSearchQueryStatus;
        /**
         * Filter out Adult entries
         */
        sfw?: boolean;
        /**
         * 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
         */
        genres_exclude?: string;
        order_by?: MangaSearchQueryOrderby;
        sort?: SearchQuerySort;
        /**
         * Return entries starting with the given letter
         */
        letter?: string;
        /**
         * Filter by magazine(s) IDs. Can pass multiple with a comma as a delimiter. e.g 1,2,3
         */
        magazines?: string;
        /**
         * Filter by starting date. Format: YYYY-MM-DD. e.g `2022`, `2005-05`, `2005-01-01`
         */
        start_date?: string;
        /**
         * Filter by ending date. Format: YYYY-MM-DD. e.g `2022`, `2005-05`, `2005-01-01`
         */
        end_date?: string;
    };
    url: '/manga';
};
export type GetMangaSearchErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetMangaSearchResponses = {
    /**
     * Returns search results for manga
     */
    200: MangaSearch;
};
export type GetMangaSearchResponse = GetMangaSearchResponses[keyof GetMangaSearchResponses];
export type GetPeopleSearchData = {
    body?: never;
    path?: never;
    query?: {
        page?: number;
        limit?: number;
        q?: string;
        order_by?: PeopleSearchQueryOrderby;
        sort?: SearchQuerySort;
        /**
         * Return entries starting with the given letter
         */
        letter?: string;
    };
    url: '/people';
};
export type GetPeopleSearchErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetPeopleSearchResponses = {
    /**
     * Returns search results for people
     */
    200: PeopleSearch;
};
export type GetPeopleSearchResponse = GetPeopleSearchResponses[keyof GetPeopleSearchResponses];
export type GetCharactersSearchData = {
    body?: never;
    path?: never;
    query?: {
        page?: number;
        limit?: number;
        q?: string;
        order_by?: CharactersSearchQueryOrderby;
        sort?: SearchQuerySort;
        /**
         * Return entries starting with the given letter
         */
        letter?: string;
    };
    url: '/characters';
};
export type GetCharactersSearchErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetCharactersSearchResponses = {
    /**
     * Returns search results for characters
     */
    200: CharactersSearch;
};
export type GetCharactersSearchResponse = GetCharactersSearchResponses[keyof GetCharactersSearchResponses];
export type GetUsersSearchData = {
    body?: never;
    path?: never;
    query?: {
        page?: number;
        limit?: number;
        q?: string;
        gender?: UsersSearchQueryGender;
        location?: string;
        maxAge?: number;
        minAge?: number;
    };
    url: '/users';
};
export type GetUsersSearchErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetUsersSearchResponses = {
    /**
     * Returns search results for users
     */
    200: UsersSearch;
};
export type GetUsersSearchResponse = GetUsersSearchResponses[keyof GetUsersSearchResponses];
export type GetUserByIdData = {
    body?: never;
    path: {
        id: number;
    };
    query?: never;
    url: '/users/userbyid/{id}';
};
export type GetUserByIdErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetUserByIdResponses = {
    /**
     * Returns username by ID search
     */
    200: {
        data?: UserById;
    };
};
export type GetUserByIdResponse = GetUserByIdResponses[keyof GetUserByIdResponses];
export type GetClubsSearchData = {
    body?: never;
    path?: never;
    query?: {
        page?: number;
        limit?: number;
        q?: string;
        type?: ClubSearchQueryType;
        category?: ClubSearchQueryCategory;
        order_by?: ClubSearchQueryOrderby;
        sort?: SearchQuerySort;
        /**
         * Return entries starting with the given letter
         */
        letter?: string;
    };
    url: '/clubs';
};
export type GetClubsSearchErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetClubsSearchResponses = {
    /**
     * Returns search results for clubs
     */
    200: ClubsSearch;
};
export type GetClubsSearchResponse = GetClubsSearchResponses[keyof GetClubsSearchResponses];
export type GetProducersData = {
    body?: never;
    path?: never;
    query?: {
        page?: number;
        limit?: number;
        q?: string;
        order_by?: ProducersQueryOrderby;
        sort?: SearchQuerySort;
        /**
         * Return entries starting with the given letter
         */
        letter?: string;
    };
    url: '/producers';
};
export type GetProducersErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetProducersResponses = {
    /**
     * Returns producers collection
     */
    200: Producers;
};
export type GetProducersResponse = GetProducersResponses[keyof GetProducersResponses];
export type GetSeasonNowData = {
    body?: never;
    path?: never;
    query?: {
        /**
         * Entry types
         */
        filter?: 'tv' | 'movie' | 'ova' | 'special' | 'ona' | 'music';
        /**
         * '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;
        /**
         * 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;
        page?: number;
        limit?: number;
    };
    url: '/seasons/now';
};
export type GetSeasonNowErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetSeasonNowResponses = {
    /**
     * Returns current seasonal anime
     */
    200: AnimeSearch;
};
export type GetSeasonNowResponse = GetSeasonNowResponses[keyof GetSeasonNowResponses];
export type GetSeasonData = {
    body?: never;
    path: {
        year: number;
        season: string;
    };
    query?: {
        /**
         * Entry types
         */
        filter?: 'tv' | 'movie' | 'ova' | 'special' | 'ona' | 'music';
        /**
         * '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;
        /**
         * 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;
        page?: number;
        limit?: number;
    };
    url: '/seasons/{year}/{season}';
};
export type GetSeasonErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetSeasonResponses = {
    /**
     * Returns seasonal anime
     */
    200: AnimeSearch;
};
export type GetSeasonResponse = GetSeasonResponses[keyof GetSeasonResponses];
export type GetSeasonsListData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/seasons';
};
export type GetSeasonsListErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetSeasonsListResponses = {
    /**
     * Returns available list of seasons
     */
    200: Seasons;
};
export type GetSeasonsListResponse = GetSeasonsListResponses[keyof GetSeasonsListResponses];
export type GetSeasonUpcomingData = {
    body?: never;
    path?: never;
    query?: {
        /**
         * Entry types
         */
        filter?: 'tv' | 'movie' | 'ova' | 'special' | 'ona' | 'music';
        /**
         * '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;
        /**
         * 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;
        page?: number;
        limit?: number;
    };
    url: '/seasons/upcoming';
};
export type GetSeasonUpcomingErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetSeasonUpcomingResponses = {
    /**
     * Returns upcoming season's anime
     */
    200: AnimeSearch;
};
export type GetSeasonUpcomingResponse = GetSeasonUpcomingResponses[keyof GetSeasonUpcomingResponses];
export type GetTopAnimeData = {
    body?: never;
    path?: never;
    query?: {
        type?: AnimeSearchQueryType;
        filter?: TopAnimeFilter;
        rating?: AnimeSearchQueryRating;
        /**
         * Filter out Adult entries
         */
        sfw?: boolean;
        page?: number;
        limit?: number;
    };
    url: '/top/anime';
};
export type GetTopAnimeErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetTopAnimeResponses = {
    /**
     * Returns top anime
     */
    200: AnimeSearch;
};
export type GetTopAnimeResponse = GetTopAnimeResponses[keyof GetTopAnimeResponses];
export type GetTopMangaData = {
    body?: never;
    path?: never;
    query?: {
        type?: MangaSearchQueryType;
        filter?: TopMangaFilter;
        page?: number;
        limit?: number;
    };
    url: '/top/manga';
};
export type GetTopMangaErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetTopMangaResponses = {
    /**
     * Returns top manga
     */
    200: MangaSearch;
};
export type GetTopMangaResponse = GetTopMangaResponses[keyof GetTopMangaResponses];
export type GetTopPeopleData = {
    body?: never;
    path?: never;
    query?: {
        page?: number;
        limit?: number;
    };
    url: '/top/people';
};
export type GetTopPeopleErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetTopPeopleResponses = {
    /**
     * Returns top people
     */
    200: PeopleSearch;
};
export type GetTopPeopleResponse = GetTopPeopleResponses[keyof GetTopPeopleResponses];
export type GetTopCharactersData = {
    body?: never;
    path?: never;
    query?: {
        page?: number;
        limit?: number;
    };
    url: '/top/characters';
};
export type GetTopCharactersErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetTopCharactersResponses = {
    /**
     * Returns top characters
     */
    200: CharactersSearch;
};
export type GetTopCharactersResponse = GetTopCharactersResponses[keyof GetTopCharactersResponses];
export type GetTopReviewsData = {
    body?: never;
    path?: never;
    query?: {
        page?: number;
        type?: TopReviewsTypeEnum;
        /**
         * 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;
    };
    url: '/top/reviews';
};
export type GetTopReviewsErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetTopReviewsResponses = {
    /**
     * Returns top reviews
     */
    200: {
        data?: {
            data?: Array<({
                user?: UserMeta;
            } & {
                anime?: AnimeMeta;
            } & AnimeReview) | ({
                user?: UserMeta;
            } & {
                manga?: MangaMeta;
            } & MangaReview)>;
        } & Pagination;
    };
};
export type GetTopReviewsResponse = GetTopReviewsResponses[keyof GetTopReviewsResponses];
export type GetUserFullProfileData = {
    body?: never;
    path: {
        username: string;
    };
    query?: never;
    url: '/users/{username}/full';
};
export type GetUserFullProfileErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetUserFullProfileResponses = {
    /**
     * Returns complete user resource data
     */
    200: {
        data?: UserProfileFull;
    };
};
export type GetUserFullProfileResponse = GetUserFullProfileResponses[keyof GetUserFullProfileResponses];
export type GetUserProfileData = {
    body?: never;
    path: {
        username: string;
    };
    query?: never;
    url: '/users/{username}';
};
export type GetUserProfileErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetUserProfileResponses = {
    /**
     * Returns user profile
     */
    200: {
        data?: UserProfile;
    };
};
export type GetUserProfileResponse = GetUserProfileResponses[keyof GetUserProfileResponses];
export type GetUserStatisticsData = {
    body?: never;
    path: {
        username: string;
    };
    query?: never;
    url: '/users/{username}/statistics';
};
export type GetUserStatisticsErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetUserStatisticsResponses = {
    /**
     * Returns user statistics
     */
    200: UserStatistics;
};
export type GetUserStatisticsResponse = GetUserStatisticsResponses[keyof GetUserStatisticsResponses];
export type GetUserFavoritesData = {
    body?: never;
    path: {
        username: string;
    };
    query?: never;
    url: '/users/{username}/favorites';
};
export type GetUserFavoritesErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetUserFavoritesResponses = {
    /**
     * Returns user favorites
     */
    200: {
        data?: UserFavorites;
    };
};
export type GetUserFavoritesResponse = GetUserFavoritesResponses[keyof GetUserFavoritesResponses];
export type GetUserUpdatesData = {
    body?: never;
    path: {
        username: string;
    };
    query?: never;
    url: '/users/{username}/userupdates';
};
export type GetUserUpdatesErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetUserUpdatesResponses = {
    /**
     * Returns user updates
     */
    200: UserUpdates;
};
export type GetUserUpdatesResponse = GetUserUpdatesResponses[keyof GetUserUpdatesResponses];
export type GetUserAboutData = {
    body?: never;
    path: {
        username: string;
    };
    query?: never;
    url: '/users/{username}/about';
};
export type GetUserAboutErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetUserAboutResponses = {
    /**
     * Returns user about in raw HTML
     */
    200: UserAbout;
};
export type GetUserAboutResponse = GetUserAboutResponses[keyof GetUserAboutResponses];
export type GetUserHistoryData = {
    body?: never;
    path: {
        username: string;
    };
    query?: {
        type?: 'anime' | 'manga';
    };
    url: '/users/{username}/history';
};
export type GetUserHistoryErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetUserHistoryResponses = {
    /**
     * Returns user history (past 30 days)
     */
    200: UserHistory;
};
export type GetUserHistoryResponse = GetUserHistoryResponses[keyof GetUserHistoryResponses];
export type GetUserFriendsData = {
    body?: never;
    path: {
        username: string;
    };
    query?: {
        page?: number;
    };
    url: '/users/{username}/friends';
};
export type GetUserFriendsErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetUserFriendsResponses = {
    /**
     * Returns user friends
     */
    200: UserFriends;
};
export type GetUserFriendsResponse = GetUserFriendsResponses[keyof GetUserFriendsResponses];
export type GetUserAnimelistData = {
    body?: never;
    path: {
        username: string;
    };
    query?: {
        status?: UserAnimeListStatusFilter;
    };
    url: '/users/{username}/animelist';
};
export type GetUserAnimelistErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetUserAnimelistResponses = {
    /**
     * Returns user anime list
     */
    200: unknown;
};
export type GetUserMangaListData = {
    body?: never;
    path: {
        username: string;
    };
    query?: {
        status?: UserMangaListStatusFilter;
    };
    url: '/users/{username}/mangalist';
};
export type GetUserMangaListErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetUserMangaListResponses = {
    /**
     * Returns user manga list
     */
    200: unknown;
};
export type GetUserReviewsData = {
    body?: never;
    path: {
        username: string;
    };
    query?: {
        page?: number;
    };
    url: '/users/{username}/reviews';
};
export type GetUserReviewsErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetUserReviewsResponses = {
    /**
     * Returns user reviews
     */
    200: {
        data?: {
            data?: Array<({
                user?: UserMeta;
            } & {
                anime?: AnimeMeta;
            } & AnimeReview) | ({
                user?: UserMeta;
            } & {
                manga?: MangaMeta;
            } & MangaReview)>;
        } & Pagination;
    };
};
export type GetUserReviewsResponse = GetUserReviewsResponses[keyof GetUserReviewsResponses];
export type GetUserRecommendationsData = {
    body?: never;
    path: {
        username: string;
    };
    query?: {
        page?: number;
    };
    url: '/users/{username}/recommendations';
};
export type GetUserRecommendationsErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetUserRecommendationsResponses = {
    /**
     * Returns Recent Anime Recommendations
     */
    200: Recommendations;
};
export type GetUserRecommendationsResponse = GetUserRecommendationsResponses[keyof GetUserRecommendationsResponses];
export type GetUserClubsData = {
    body?: never;
    path: {
        username: string;
    };
    query?: {
        page?: number;
    };
    url: '/users/{username}/clubs';
};
export type GetUserClubsErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetUserClubsResponses = {
    /**
     * Returns user clubs
     */
    200: UserClubs;
};
export type GetUserClubsResponse = GetUserClubsResponses[keyof GetUserClubsResponses];
export type GetUserExternalData = {
    body?: never;
    path: {
        username: string;
    };
    query?: never;
    url: '/users/{username}/external';
};
export type GetUserExternalErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetUserExternalResponses = {
    /**
     * Returns user's external links
     */
    200: ExternalLinks;
};
export type GetUserExternalResponse = GetUserExternalResponses[keyof GetUserExternalResponses];
export type GetWatchRecentEpisodesData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/watch/episodes';
};
export type GetWatchRecentEpisodesErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetWatchRecentEpisodesResponses = {
    /**
     * Returns Recently Added Episodes
     */
    200: WatchEpisodes;
};
export type GetWatchRecentEpisodesResponse = GetWatchRecentEpisodesResponses[keyof GetWatchRecentEpisodesResponses];
export type GetWatchPopularEpisodesData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/watch/episodes/popular';
};
export type GetWatchPopularEpisodesErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetWatchPopularEpisodesResponses = {
    /**
     * Returns Popular Episodes
     */
    200: WatchEpisodes;
};
export type GetWatchPopularEpisodesResponse = GetWatchPopularEpisodesResponses[keyof GetWatchPopularEpisodesResponses];
export type GetWatchRecentPromosData = {
    body?: never;
    path?: never;
    query?: {
        page?: number;
    };
    url: '/watch/promos';
};
export type GetWatchRecentPromosErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetWatchRecentPromosResponses = {
    /**
     * Returns Recently Added Promotional Videos
     */
    200: WatchPromos;
};
export type GetWatchRecentPromosResponse = GetWatchRecentPromosResponses[keyof GetWatchRecentPromosResponses];
export type GetWatchPopularPromosData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/watch/promos/popular';
};
export type GetWatchPopularPromosErrors = {
    /**
     * Error: Bad request. When required parameters were not supplied.
     */
    400: unknown;
};
export type GetWatchPopularPromosResponses = {
    /**
     * Returns Popular Promotional Videos
     */
    200: WatchPromos;
};
export type GetWatchPopularPromosResponse = GetWatchPopularPromosResponses[keyof GetWatchPopularPromosResponses];
export type ClientOptions = {
    baseUrl: 'https://api.jikan.moe/v4' | (string & {});
};
