import type { SlateElement } from '@yoopta/editor'; import type { RenderElementProps } from 'slate-react'; export type EmbedProviderType = 'youtube' | 'vimeo' | 'dailymotion' | 'wistia' | 'loom' | 'twitter' | 'figma' | 'instagram' | 'codepen' | 'codesandbox' | 'spotify' | 'soundcloud' | 'google-maps' | 'unknown'; export type EmbedProviderMeta = { title?: string; description?: string; thumbnailUrl?: string; authorName?: string; authorUrl?: string; }; export type EmbedProvider = { type: EmbedProviderType; id: string; url: string; embedUrl: string; meta?: EmbedProviderMeta; }; export type EmbedSizes = { width: number; height: number; }; export type EmbedAspectRatio = { width: number; height: number; }; export type EmbedElementProps = { provider: EmbedProvider | null; sizes: EmbedSizes; nodeType: 'void'; }; export type EmbedPluginElements = 'embed'; export type EmbedElement = SlateElement<'embed', EmbedElementProps>; export type EmbedPluginOptions = { maxWidth?: number; defaultSizes?: EmbedSizes; }; export type EmbedProviderRenderProps = { provider: EmbedProvider; blockId: string; width: number; height: number; isLoading?: boolean; error?: string | null; } & Pick; export type EmbedElementMap = { embed: EmbedElement; }; export type OEmbedResponse = { type: 'video' | 'photo' | 'link' | 'rich'; version: string; title?: string; author_name?: string; author_url?: string; provider_name?: string; provider_url?: string; thumbnail_url?: string; thumbnail_width?: number; thumbnail_height?: number; html?: string; width?: number; height?: number; }; export type ProviderConfig = { type: EmbedProviderType; name: string; patterns: RegExp[]; extractId: (url: string) => string | null; buildEmbedUrl: (id: string, url: string) => string; aspectRatio: EmbedAspectRatio; oEmbedUrl?: (url: string) => string; }; //# sourceMappingURL=types.d.ts.map