tmdbrjs
Version:
A TypeScript wrapper for The Movie Database (TMDB) API
156 lines • 3.92 kB
TypeScript
import { CastMember, CrewMember } from '../../movies/types/MovieCast';
export interface Person {
adult: boolean;
alsoKnownAs: string[];
biography: string;
birthday: string | null;
deathday: string | null;
gender: number;
homepage: string | null;
id: number;
imdbId: string | null;
knownForDepartment: string | null;
name: string;
placeOfBirth: string | null;
popularity: number;
profilePath: string | null;
}
export interface MovieCredits {
id: number;
cast: CastMember[];
crew: CrewMember[];
}
export interface TvCredits {
id: number;
cast: Array<{
id: number;
name: string;
originalName: string;
character: string;
creditId: string;
episodeCount: number;
}>;
crew: Array<{
id: number;
name: string;
originalName: string;
department: string;
job: string;
creditId: string;
episodeCount: number;
}>;
}
export interface CombinedCredits {
id: number;
cast: Array<{
id: number;
name: string;
originalName: string;
character: string;
creditId: string;
mediaType: 'movie' | 'tv';
episodeCount?: number;
}>;
crew: Array<{
id: number;
name: string;
originalName: string;
department: string;
job: string;
creditId: string;
mediaType: 'movie' | 'tv';
episodeCount?: number;
}>;
}
export interface Profile {
aspectRatio: number;
filePath: string;
height: number;
iso6391: string | null;
voteAverage: number;
voteCount: number;
width: number;
}
export interface Images {
id: number;
profiles: Profile[];
}
export interface ExternalIds {
externalIds: {
id: number;
freebaseMid: string | null;
freebaseId: string | null;
imdbId: string | null;
tvrageId: number | null;
wikidataId: string | null;
facebookId: string | null;
instagramId: string | null;
twitterId: string | null;
};
}
export interface TaggedImages {
taggedImages: {
id: number;
page: number;
results: Array<{
aspectRatio: number;
filePath: string;
height: number;
id: string;
iso_639_1: string | null;
voteAverage: number;
voteCount: number;
width: number;
imageType: string;
media: {
id: number;
mediaType: 'movie' | 'tv';
title?: string;
name?: string;
originalTitle?: string;
originalName?: string;
};
}>;
totalPages: number;
totalResults: number;
};
}
export interface Translations {
translations: {
id: number;
translations: Array<{
iso_3166_1: string;
iso_639_1: string;
name: string;
englishName: string;
data: {
biography: string;
};
}>;
};
}
export interface PopularPeople {
page: number;
results: Person[];
totalPages: number;
totalResults: number;
}
export interface Options<T extends AppendOptions[]> {
include?: T;
}
type AppendResponseMap = {
movieCredits: MovieCredits;
tvCredits: TvCredits;
combinedCredits: CombinedCredits;
images: Images;
latest: Person;
externalIds: ExternalIds;
taggedImages: TaggedImages;
translations: Translations;
};
export type AppendResponse<T extends AppendOptions[]> = {
[K in T[number]]: AppendResponseMap[K];
};
export type AppendOptions = 'movieCredits' | 'tvCredits' | 'combinedCredits' | 'images' | 'latest' | 'externalIds' | 'taggedImages' | 'translations';
export {};
//# sourceMappingURL=Person.d.ts.map