import { EmptyObjectField, FieldState } from "./types.js"; //#region src/types/value/embed.d.ts /** * OEmbed 1.0 possible types. * * @see oEmbed specification: {@link https://oembed.com} */ declare const OEmbedType: { readonly Photo: "photo"; readonly Video: "video"; readonly Link: "link"; readonly Rich: "rich"; }; /** * OEmbed response base fields. Those are every mandatory fields an oEmbed response must feature. * * @see oEmbed specification: {@link https://oembed.com} */ type OEmbedBase = { /** OEmbed resource type. */type: TType; /** OEmbed version number, this must be "1.0". */ version: string; }; /** * OEmbed response extra fields. Those are every non-mandatory and unknown fields an oEmbed response * can feature. * * @see oEmbed specification: {@link https://oembed.com} */ type OEmbedExtra = { /** OEmbed text title, describing the resource. */title?: string | null; /** OEmbed resource author/owner name. */ author_name?: string | null; /** OEmbed resource author/owner URL. */ author_url?: string | null; /** OEmbed resource provider name. */ provider_name?: string | null; /** OEmbed resource provider URL. */ provider_url?: string | null; /** OEmbed suggested cache lifetime for the resource, in seconds. */ cache_age?: number | null; /** OEmbed resource thumbnail URL. */ thumbnail_url?: string | null; /** OEmbed resource thumbnail width. */ thumbnail_width?: number | null; /** OEmbed resource thumbnail height. */ thumbnail_height?: number | null; /** * Providers may optionally include any parameters not specified in this document (so long as they * use the same key-value format) and consumers may choose to ignore these. Consumers must ignore * parameters they do not understand. * * @see oEmbed specification: {@link https://oembed.com} */ [key: string]: unknown | null; }; /** * OEmbed photo type. Those are every mandatory fields an oEmbed photo response must feature. * * @see oEmbed specification: {@link https://oembed.com} */ type PhotoOEmbed = OEmbedBase & { /** OEmbed source URL of the image. */url: string; /** OEmbed width in pixels of the image. */ width: number; /** OEmbed height in pixels of the image. */ height: number; }; /** * OEmbed video type. Those are every mandatory fields an oEmbed video response must feature. * * @see oEmbed specification: {@link https://oembed.com} */ type VideoOEmbed = OEmbedBase & { /** OEmbed HTML required to embed a video player. */html: string; /** OEmbed width in pixels required to display the HTML. */ width: number; /** OEmbed height in pixels required to display the HTML. */ height: number; }; /** * OEmbed link type. Those are every mandatory fields an oEmbed link response must feature. * * @see oEmbed specification: {@link https://oembed.com} */ type LinkOEmbed = OEmbedBase; /** * OEmbed rich type. Those are every mandatory fields an oEmbed rich response must feature. * * @see oEmbed specification: {@link https://oembed.com} */ type RichOEmbed = OEmbedBase & { /** OEmbed HTML required to display the resource. */html: string; /** OEmbed width in pixels required to display the HTML. */ width: number; /** OEmbed height in pixels required to display the HTML. */ height: number; }; /** * Any of the possible types of oEmbed response. Those contains only mandatory fields their * respective oEmbed response type must feature. * * @see oEmbed specification: {@link https://oembed.com} */ type AnyOEmbed = PhotoOEmbed | VideoOEmbed | LinkOEmbed | RichOEmbed; /** * An embed field. * * @typeParam Data - Data provided by the URL's oEmbed provider. * @typeParam State - State of the field which determines its shape. * @see More details: {@link https://prismic.io/docs/embed} */ type EmbedField = State extends "empty" ? EmptyObjectField : Data & { embed_url: string; html: string | null; }; //#endregion export { AnyOEmbed, EmbedField, LinkOEmbed, OEmbedExtra, OEmbedType, PhotoOEmbed, RichOEmbed, VideoOEmbed }; //# sourceMappingURL=embed.d.ts.map