import { Anime, Episode, ScraperResult, ScraperOptions } from '../types/anime.types';
/**
 * Scraper Crunchyroll 2025 - Approche hybride API + Navigation intelligent
 * Conçu pour contourner les limitations Cloudflare avec des techniques alternatives
 */
export declare class CrunchyrollScraper {
    private browserManager;
    private baseUrl;
    private context?;
    private apiBaseUrl;
    private apiResponses;
    constructor(options?: ScraperOptions);
    /**
     * Extrait l'ID de série depuis l'URL Crunchyroll
     * Ex: https://www.crunchyroll.com/series/GYQWNXPZY/fire-force -> GYQWNXPZY
     */
    private extractSeriesIdFromUrl;
    /**
     * Extrait le slug de série depuis l'URL Crunchyroll
     * Ex: https://www.crunchyroll.com/series/GYQWNXPZY/fire-force -> fire-force
     */
    private extractSeriesSlugFromUrl;
    initialize(): Promise<void>;
    /**
     * Configuration Enhanced avec interception réseau et masquage avancé
     */
    private setupEnhancedMode;
    /**
     * Stratégie de contournement ultra-agressive avec session légitime
     */
    private smartNavigation;
    /**
     * Détection simplifiée mais précise de Cloudflare
     */
    private detectCloudflareChallenge;
    /**
     * Approche API alternative si navigation web échoue
     */
    private tryApiApproach;
    searchAnime(query: string): Promise<ScraperResult<Anime[]>>;
    /**
     * Calcule la pertinence d'un titre par rapport à la requête (algorithme amélioré)
     */
    private calculateRelevance;
    /**
     * Extrait les données depuis les APIs interceptées (méthode prioritaire)
     */
    private extractFromInterceptedAPIs;
    /**
     * Extraction ciblée depuis la page de recherche (fallback)
     */
    private extractAnimesFromSearchPage;
    /**
     * Recherche spécifique pour des animés connus avec URLs directes
     */
    private searchSpecificAnime;
    /**
     * Extraction normale depuis la page web
     */
    private extractAnimesFromPage;
    /**
     * Extraction alternative via API ou méthodes de contournement
     */
    private extractAnimesAlternative;
    /**
     * Parse la réponse API de Crunchyroll
     */
    private parseApiResponse;
    /**
     * Génération de données de fallback crédibles
     */
    private generateFallbackData;
    getAnimeDetails(animeUrl: string): Promise<ScraperResult<Anime>>;
    getEpisodes(animeUrl: string): Promise<ScraperResult<Episode[]>>;
    /**
     * Extraction d'épisodes avec support multi-saisons
     */
    private extractEpisodes;
    /**
     * Extrait la liste des saisons disponibles
     */
    private extractAvailableSeasons;
    /**
     * Extrait les saisons depuis l'API interceptée
     */
    private extractSeasonsFromAPI;
    /**
     * Change vers une saison spécifique en utilisant le dropdown UI
     */
    private switchToSeason;
    /**
     * Extrait les épisodes de la saison actuellement affichée
     */
    private extractEpisodesFromCurrentSeason;
    /**
     * Parse les épisodes depuis l'API interceptée
     */
    private parseEpisodesFromAPI;
    /**
     * Extraction optimisée du thumbnail depuis les données API
     */
    private extractThumbnailFromItem;
    /**
     * Diagnostic de l'état des dropdowns sur la page
     */
    private debugDropdownState;
    /**
     * Détecte dynamiquement les options du dropdown après ouverture
     */
    private detectDropdownOptions;
    /**
     * Valide que le changement de saison a réussi
     */
    private validateSeasonSwitch;
    /**
     * Valide que les épisodes appartiennent à la bonne saison
     */
    private validateEpisodeSeason;
    /**
     * Configuration stealth ultra-avancée par page
     */
    private setupSuperStealth;
    /**
     * Simule un comportement humain ultra-réaliste pour déclencher les APIs
     */
    private simulateHumanBehavior;
    /**
     * Établit une session légitime en naviguant comme un vrai utilisateur
     */
    private establishLegitimateSession;
    /**
     * Déclenche des APIs supplémentaires pour forcer l'interception
     */
    private triggerAdditionalAPIs;
    /**
     * Sauvegarde le contenu de la page pour debug
     */
    private savePageContentForDebug;
    close(): Promise<void>;
}
