import { DateTime, Dictionary, Flag, Markup, PublicationName, RichText, Slug, UUID, URL, UnsignedInt, DataSource, CategoryType, CommentSortOrder, AudioNarration } from "../common"; import { SectionName, ThemeTemplate, EmbeddedComponentResource, WorkDeskName, ArticleContentType, ArticleStatus, ArticleLocale } from "../queries/article"; import { Ratio } from "../queries/media"; import { ArticleSliceInput } from "./article-slice-input"; import { Colour } from "../queries/colour"; import { LiveBlogInput } from "./live-blog-input"; export type ExpirableFlagInput = { type: Flag; duration: number | null; }; export type BylineInput = { image?: ImageInput | null; byline: Markup; author?: Slug | null; }; export type ArticleCategoryInput = { id: UUID; type: CategoryType; }; export type ArticleInput = { associatedDesks?: string[] | null; leadAsset?: MediaInput | null; listingAsset?: MediaInput | null; byline: Markup; bylines?: BylineInput[] | null; catchline?: string | null; categories?: ArticleCategoryInput[] | null; dataSource: DataSource; escenicId?: number | null; authors: Slug[]; embeddedContent?: EmbeddedContentInput | null; expirableFlags: ExpirableFlagInput[]; headline?: string | null; shortHeadline?: string | null; id: UUID; label?: string | null; commentsEnabled: boolean; commentsPreModerated?: boolean | null; commentsSortOrder: CommentSortOrder | null; commercialTags: string[]; section?: SectionName | null; seoDescription?: string | null; commercialSection?: string | null; parentId?: UUID | null; publicationName: PublicationName; publishedTime: DateTime; commercialSectionTags?: string[] | null; upNext?: ArticleSliceInput | null; relatedArticleSlice?: ArticleSliceInput | null; updatedTime: DateTime; slug: Slug; standfirst?: string | null; strapline?: string | null; isLegacy: boolean; content: ContentFragmentInput[]; template?: ThemeTemplate | null; backgroundColour?: Colour | null; dropcapsDisabled: boolean; savingEnabled: boolean; sharingEnabled: boolean; textColour?: Colour | null; workDesk?: WorkDeskName | null; contentType?: ArticleContentType | null; carousel?: MediaInput[] | null; status?: ArticleStatus | null; liveBlog?: LiveBlogInput | null; storylineMenuId?: UUID | null; audioNarration?: AudioNarration | null; articleSummarisation?: ArticleSummarisationInput | null; shouldShowBylinesImages?: boolean | null; /** locale tag for hreflang / edition clusters (e.g. "en-gb"). */ locale?: ArticleLocale | null; /** UUID of the edition cluster anchor post; null when not clustered. */ editionClusterId?: UUID | null; }; export type ArticleSummarisationInput = { summaryTypes: ArticleSummarisationSummaryTypeInput[]; }; export type ArticleSummarisationSummaryTypeInput = { title: string; description: string; content: ArticleSummarisationRichTextFragmentInput[]; }; export type ArticleSummarisationRichTextFragmentInput = { blockId?: string | null; richText: RichText; }; export type MediaInput = { image?: ImageInput | null; video?: VideoInput | null; }; export type ContentFragmentInput = { richText?: RichTextFragmentInput | null; image?: ImageFragmentInput | null; video?: VideoFragmentInput | null; interactive?: InteractiveFragmentInput | null; }; export type ContentFragmentMetadataInput = { display?: Display | null; }; export type Display = "primary" | "secondary" | "inline" | "fullwidth"; export type ImageFragmentInput = { blockId?: string | null; metadata: ContentFragmentMetadataInput; image: ImageInput; }; export type InteractiveFragmentInput = { blockId?: string | null; metadata: ContentFragmentMetadataInput; interactive: InteractiveInput; }; export type RichTextFragmentInput = { blockId?: string | null; richText: RichText; }; export type VideoFragmentInput = { blockId?: string | null; metadata: ContentFragmentMetadataInput; video: VideoInput; }; export type ImageInput = { id: UUID; title: string; caption?: string | null; credits?: string | null; crops: CropInput[]; videoCrops?: CropInput[] | null; }; export type CropInput = { ratio: Ratio; horizontalOffset: UnsignedInt; verticalOffset: UnsignedInt; width: number; height: number; imageId: string; sourceWidth?: number | null; sourceHeight?: number | null; chpId?: string | null; }; export type VideoInput = { id: UUID; caption?: string | null; title?: string | null; duration?: number | null; brightcoveAccountId: string; brightcovePlayerId: string; brightcovePolicyKey: string; brightcoveVideoId: string; paidOnly: boolean; skySports: boolean; posterImage: ImageInput; is360?: boolean | null; }; export type InteractiveInput = { id: UUID; caption?: string | null; url: URL; element: InteractiveElementInput; }; export type InteractiveElementInput = { attributes: Dictionary; value: string; }; export type EmbeddedContentInput = { authorised: EmbeddedContentElementInput; unauthorised: EmbeddedContentElementInput; }; type EmbeddedContentElementInput = { content: string; head?: string | null; scripts: EmbeddedComponentResource[]; }; export {};