import { DefaultPluginOptions } from '../../interfaces'; export declare enum EmbedTypes { twitter = "twitter", youtube = "youtube", facebook = "facebook", instagram = "instagram" } export declare enum RenderTypes { RSS = "content_rss", AMP = "content_amp", DEFAULT = "html" } export interface EmbedElem { type: string; embed?: string; html?: string; url?: string; resizable?: boolean; } export interface EmbedService { regex: RegExp; embedUrl?: string; html: string; height?: number; width?: number; id?: ([id, params]: string[]) => string; resizable?: boolean; } export interface EmbedServiceMap { [service: string]: EmbedService; } export declare type EmbedComponent = { component: string; componentConstructor: CustomElementConstructor; }; export interface OEmbedProviderEndpoint { schemes: string[]; url: string; discovery?: boolean; formats?: string[]; } export interface OEmbedProvider { provider_name: string; provider_url: string; endpoints: OEmbedProviderEndpoint[]; } export interface ProviderOptions { name: string; maxwidth?: number; maxheight?: number; } export interface GetEmbedProviderResult { endpoint: OEmbedProviderEndpoint; provider_name: string; opts?: ProviderOptions; } export declare type GetEmbedProvider = (url: string) => GetEmbedProviderResult | undefined; export declare type EmbedPluginOptions = DefaultPluginOptions & { components: EmbedComponent[]; oEmbedProviders?: OEmbedProvider[]; providerOptions?: ProviderOptions[]; services: EmbedServiceMap; }; export declare type OEmbedType = 'photo' | 'video' | 'link' | 'rich'; export interface OEmbedBase { type: OEmbedType; version: string; title?: string; author_name?: string; author_url?: string; provider_name?: string; provider_url?: string; cache_age?: number; thumbnail_url?: string; thumbnail_width?: number; thumbnail_height?: number; } export interface OEmbedPhoto extends OEmbedBase { type: 'photo'; url: string; width: number; height: number; } export interface OEmbedVideo extends OEmbedBase { type: 'video'; html: string; width: number; height: number; } export declare type OEmbedLink = OEmbedBase & { type: 'link'; }; export interface OEmbedRich extends OEmbedBase { type: 'rich'; html: string; width: number; height: number; } export declare type OEmbed = OEmbedPhoto | OEmbedVideo | OEmbedLink | OEmbedRich;