import { RequireAtLeastOne } from '@dvcol/common-utils/common/models'; import { TraktApiParams, TraktApiTemplate } from './trakt-client.model.cjs'; import { TraktApiIds } from './trakt-id.model.cjs'; import '@dvcol/base-http-client'; import '@dvcol/common-utils/http/fetch'; import '../api/trakt-api.filters.cjs'; type TraktSharing = RequireAtLeastOne<{ twitter: boolean; mastodon: boolean; tumblr: boolean; }>; type TraktBaseSlugEntity = { name: string; slug: string; }; type TraktGenre = TraktBaseSlugEntity; type TraktCertification = TraktBaseSlugEntity & { description: string; }; type TraktBaseCodeEntity = { name: string; code: string; }; type TraktCountry = TraktBaseCodeEntity; type TraktLanguage = TraktBaseCodeEntity; type TraktNetwork = { name: string; /** 2 character country code (ISO 3166-1 alpha-2) */ country: string; ids: Pick; }; type TraktAlias = { title: string; /** 2 character country code (ISO 3166-1 alpha-2) */ country: string; }; type TraktTranslation = { title: string; overview: string; tagline: string; /** 2 character language code (ISO 639-1) */ language: string; /** 2 character country code (ISO 3166-1 alpha-2) */ country: string; }; type TraktGenericRating = { rating: number; votes: number; distribution?: Record<1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10, number>; }; type TraktExtendedRatings = { trakt: TraktGenericRating; tmdb?: TraktGenericRating; imdb?: TraktGenericRating; metascore?: TraktGenericRating; rotten_tomatoes?: TraktGenericRating; [key: string]: TraktGenericRating; }; type TraktRatings = T extends Short ? TraktGenericRating : T extends Extended ? TraktExtendedRatings : TraktGenericRating | TraktExtendedRatings; declare const toExtendedRatings: (ratings: TraktRatings) => TraktExtendedRatings; type TraktStudio = { name: string; /** 2 character country code (ISO 3166-1 alpha-2) */ country: string; ids: Pick; }; type StartDateParam = { /** * Updated since this date and time. * Timestamp in ISO 8601 GMT format (YYYY-MM-DD'T'hh:mm:ss.sssZ) * * * Important * * The start_date is only accurate to the hour, for caching purposes. Please drop the minutes and seconds from your timestamp to help optimize our cached data. * For example, use 2021-07-17T12:00:00Z and not 2021-07-17T12:23:34Z. */ start_date?: string | number | Date; }; declare const EntityType: { readonly Short: "short"; readonly Extended: "extended"; readonly Any: "any"; }; type Any = typeof EntityType.Any; type Short = typeof EntityType.Short; type Extended = typeof EntityType.Extended; type EntityTypes = (typeof EntityType)[keyof typeof EntityType]; declare const getDateValidate: (prop: keyof T, regex?: RegExp) => TraktApiTemplate['validate']; declare const getDateTransform: (prop: keyof T, short?: boolean) => TraktApiTemplate['transform']; declare const validateStartDate: TraktApiTemplate['validate']; declare const transformStartDate: TraktApiTemplate['transform']; export { type Any, EntityType, type EntityTypes, type Extended, type Short, type StartDateParam, type TraktAlias, type TraktCertification, type TraktCountry, type TraktExtendedRatings, type TraktGenericRating, type TraktGenre, type TraktLanguage, type TraktNetwork, type TraktRatings, type TraktSharing, type TraktStudio, type TraktTranslation, getDateTransform, getDateValidate, toExtendedRatings, transformStartDate, validateStartDate };