import { CacheService } from '../core/cache.js'; import { ProviderMediaObject } from '../core/types/index.js'; export interface TMDBMovieResponse { id: number; title: string; release_date: string; status: 'Rumored' | 'Planned' | 'In Production' | 'Post Production' | 'Released' | 'Canceled'; adult: boolean; } export interface TMDBTVResponse { id: number; name: string; first_air_date: string; status: 'Returning Series' | 'Planned' | 'In Production' | 'Ended' | 'Canceled' | 'Pilot'; adult: boolean; number_of_seasons: number; seasons: Array<{ season_number: number; episode_count: number; air_date: string; }>; } export interface TMDBSeasonResponse { id: number; season_number: number; air_date: string; episodes: Array<{ episode_number: number; air_date: string | null; name: string; }>; } export interface TMDBValidationResult { exists: boolean; released: boolean; releaseDate?: string; title?: string; message?: string; } export declare class TMDBService { private cache; private readonly baseUrl; private readonly apiKey; private readonly cacheTTL; constructor(apiKey: string, cache: CacheService, cacheTTL?: number); /** * Validate a movie exists and has been released */ validateMovie(tmdbId: string): Promise; /** * Validate a TV show exists and has aired */ validateTV(tmdbId: string): Promise; /** * Validate a specific TV episode exists and has aired */ validateTVEpisode(tmdbId: string, season: number, episode: number): Promise; /** * Get media object for provider */ getMediaObject(type: 'movie' | 'tv', tmdbId: string, season?: number, episode?: number): Promise; /** * Get IMDB ID if available (cached) */ getImdbId(tmdbId: string, type: 'movie' | 'tv'): Promise; /** * Find a TMDB ID from an IMDb ID using the TMDB /find endpoint. */ findTmdbIdByImdbId(imdbId: string, type: 'movie' | 'tv'): Promise; } //# sourceMappingURL=tmdb.service.d.ts.map