import { AnimeParser, ISearch, IAnimeInfo, IAnimeResult, ISource, IEpisodeServer, StreamingServers, SubOrSub, IAnimeEpisode, WatchListType } from '../../models'; declare class Hianime extends AnimeParser { readonly name = "hianime"; protected baseUrl: string; protected logo: string; protected classPath: string; /** * Search for anime * @param query Search query string * @param page Page number (default: 1) * @returns Promise> */ search(query: string, page?: number): Promise>; /** * Fetch advanced anime search results with various filters. * * @param page Page number (default: 1) * @param type One of (Optional): movie, tv, ova, ona, special, music * @param status One of (Optional): finished_airing, currently_airing, not_yet_aired * @param rated One of (Optional): g, pg, pg_13, r, r_plus, rx * @param score Number from 1 to 10 (Optional) * @param season One of (Optional): spring, summer, fall, winter * @param language One of (Optional): sub, dub, sub_dub * @param startDate Start date object { year, month, day } (Optional) * @param endDate End date object { year, month, day } (Optional) * @param sort One of (Optional): recently_added, recently_updated, score, name_az, released_date, most_watched * @param genres Array of genres (Optional): action, adventure, cars, comedy, dementia, demons, mystery, drama, ecchi, fantasy, game, historical, horror, kids, magic, martial_arts, mecha, music, parody, samurai, romance, school, sci_fi, shoujo, shoujo_ai, shounen, shounen_ai, space, sports, super_power, vampire, harem, military, slice_of_life, supernatural, police, psychological, thriller, seinen, isekai, josei * @returns A Promise resolving to the search results. */ fetchAdvancedSearch(page?: number, type?: string, status?: string, rated?: string, score?: number, season?: string, language?: string, startDate?: { year: number; month: number; day: number; }, endDate?: { year: number; month: number; day: number; }, sort?: string, genres?: string[]): Promise>; /** * @param page number */ fetchTopAiring(page?: number): Promise>; /** * @param page number */ fetchMostPopular(page?: number): Promise>; /** * @param page number */ fetchMostFavorite(page?: number): Promise>; /** * @param page number */ fetchLatestCompleted(page?: number): Promise>; /** * @param page number */ fetchRecentlyUpdated(page?: number): Promise>; /** * @param page number */ fetchRecentlyAdded(page?: number): Promise>; /** * @param page number */ fetchTopUpcoming(page?: number): Promise>; /** * @param studio Studio id, e.g. "toei-animation" * @param page page number (optional) `default 1` */ fetchStudio(studio: string, page?: number): Promise>; /** * @param page number */ fetchSubbedAnime(page?: number): Promise>; /** * @param page number */ fetchDubbedAnime(page?: number): Promise>; /** * @param page number */ fetchMovie(page?: number): Promise>; /** * @param page number */ fetchTV(page?: number): Promise>; /** * @param page number */ fetchOVA(page?: number): Promise>; /** * @param page number */ fetchONA(page?: number): Promise>; /** * @param page number */ fetchSpecial(page?: number): Promise>; fetchGenres(): Promise; /** * @param page number */ genreSearch(genre: string, page?: number): Promise>; /** * Fetches the schedule for a given date. * @param date The date in format 'YYYY-MM-DD'. Defaults to the current date. * @returns A promise that resolves to an object containing the search results. */ fetchSchedule(date?: string): Promise>; fetchSpotlight(): Promise>; fetchSearchSuggestions(query: string): Promise>; /** * Fetches the list of episodes that the user is currently watching. * @param connectSid The session ID of the user. Note: This can be obtained from the browser cookies (needs to be signed in) * @returns A promise that resolves to an array of anime episodes. */ fetchContinueWatching(connectSid: string): Promise; fetchWatchList(connectSid: string, page?: number, sortListType?: WatchListType): Promise>; /** * Fetch anime information * @param id Anime ID/slug * @returns Promise */ fetchAnimeInfo: (id: string) => Promise; /** * Fetch episode video sources * @param episodeId Episode ID * @param server Server type (default: VidCloud) * @param subOrDub Sub or dub preference (default: SUB) * @returns Promise */ fetchEpisodeSources: (episodeId: string, server?: StreamingServers, subOrDub?: SubOrSub) => Promise; private verifyLoginState; private retrieveServerId; /** * @param url string */ private scrapeCardPage; /** * @param $ cheerio instance */ private scrapeCard; /** * @deprecated * @param episodeId Episode id */ fetchEpisodeServers: (episodeId: string) => Promise; } export default Hianime;