import { TDateISO } from "./dates.js"; export type BSPContentType = 'embed' | 'article'; export type BSPClient = { token: string; env: { id: string; }; }; export type BSPContributors = { id: string; fullName: string; signature: string; }; export type BSPCorrections = { date: TDateISO; type: string; text: string; }; export type BSPLeadMedia = { title: string; alt: string; caption: string; attribution: string; thumbnailUrl: string; content: string; contentType: string; }; export interface BSPArticle { id: string; canonicalUrl: string | null; title: string; dek: string | null; opinion: boolean; breakingNews: boolean; displaySignatures: boolean; contributors: BSPContributors[]; byline: string | null; leadMedia: BSPLeadMedia | null; publishDate: TDateISO | null; updateDate: TDateISO; categories: string[]; tags: string[]; corrections: BSPCorrections[] | null; sortDate: TDateISO | null; majorUpdateDate: TDateISO | null; subBrand: string | null; webViewOnly: boolean; externalLink: string | null; analyticsTags: { [key: string]: string; }; } export interface BSPPublishedArticle extends BSPArticle { canonicalUrl: string; dek: string; byline: string; leadMedia: BSPLeadMedia; publishDate: TDateISO; sortDate: TDateISO; } export type BSPPaginatedResponse = { totalPages: number; totalElements: number; pageable: { pageNumber: number; unpaged: boolean; pageSize: number; paged: boolean; sort: { sorted: boolean; unsorted: boolean; empty: boolean; }; offset: number; }; numberOfElements: number; first: boolean; last: boolean; sort: { sorted: boolean; unsorted: boolean; empty: boolean; }; number: number; size: number; content: BSPArticle[]; empty: boolean; }; export type BSPGenericEmbed = { html: string; label: string; appleNewsVersion?: string; }; export type BSPGenericEmbedResponse = { genericEmbedId: string; }; export type BSPJWTKey = 'JWT_QA_BLUE' | 'JWT_PROD'; export type BSPEnvironment = { id: string; jwt: BSPJWTKey; }; export type BSPEnvironments = { [key: string]: BSPEnvironment; }; export type BSPSecrets = Record;