import { EntityTypes, Short, Extended, Any } from './trakt-entity.model.js'; import { TraktApiIds } from './trakt-id.model.js'; import { TraktImage } from './trakt-image.model.js'; import '@dvcol/common-utils/common/models'; import './trakt-client.model.js'; import '@dvcol/base-http-client'; import '@dvcol/common-utils/http/fetch'; import '../api/trakt-api.filters.js'; type BaseTraktPerson = { name: string; ids: TraktApiIds; }; declare const TraktPersonJob: { readonly Production: "production"; readonly Art: "art"; readonly Crew: "crew"; readonly CostumeAndMakeUp: "costume & make-up"; readonly Directing: "directing"; readonly Writing: "writing"; readonly Sound: "sound"; readonly Camera: "camera"; readonly VisualEffects: "visual effects"; readonly Lighting: "lighting"; readonly Editing: "editing"; }; type TraktPersonJobs = (typeof TraktPersonJob)[keyof typeof TraktPersonJob]; type TraktPersonExtended = BaseTraktPerson & { social_ids: { twitter: string; facebook: string; instagram: string; wikipedia: string; }; biography: string; /** Calendar Date in ISO 8601 format (YYYY-MM-DD) */ birthday: string; death: string; birthplace: string; homepage: string; gender: 'male' | 'female' | 'non_binary'; known_for_department: TraktPersonJobs; /** Timestamp in ISO 8601 GMT format (YYYY-MM-DD'T'hh:mm:ss.sssZ) */ updated_at: string; images: TraktImage; }; type TraktPerson
= P extends Short ? BaseTraktPerson : P extends Extended ? TraktPersonExtended : BaseTraktPerson & Partial = {
characters: string[];
person: TraktPerson ;
};
type TraktCastMember & {
episode_count: number;
series_regular?: boolean;
} : T extends Short ? BaseTraktCastMember : BaseTraktCastMember & {
episode_count?: number;
series_regular?: boolean;
};
type BaseTraktCrewMember = {
jobs: string[];
person: TraktPerson ;
};
type TraktCrewMember & {
episode_count: number;
} : T extends Short ? BaseTraktCrewMember : BaseTraktCrewMember & {
episode_count?: number;
};
type TraktCrew = {
/** Timestamp in ISO 8601 GMT format (YYYY-MM-DD'T'hh:mm:ss.sssZ) */
updated_at: string;
person: TraktPerson ;
};
export { type BaseTraktPerson, type TraktCast, type TraktCastMember, type TraktCrew, type TraktCrewMember, type TraktPerson, type TraktPersonExtended, TraktPersonJob, type TraktPersonJobs, type TraktPersonUpdate };