import * as React from 'react'; export interface ParsedUrl { url: string; hostname: string; pathname: string; search: string; hash: string; } export type EmbedBlockId = string; export interface BlockProps extends ParsedUrl { id: EmbedBlockId; width: number; isDark: boolean; renderVoid: (error?: Error) => React.ReactElement | null; renderWrap: ReactEmbedWrapRenderer; } export interface Blocks { [name: string]: React.ComponentType; } export type ReactEmbedRouterResult = undefined | [undefined | React.ComponentType, EmbedBlockId]; export type ReactEmbedRouter = (blocks: Blocks, url: ParsedUrl) => ReactEmbedRouterResult; export type ReactEmbedRenderer = (block: React.ComponentType, id: EmbedBlockId, props: ReactEmbedProps, state: ReactEmbedState) => React.ReactElement | null; export type ReactEmbedVoidRenderer = (props: ReactEmbedProps, state: ReactEmbedState, error?: Error) => React.ReactElement | null; export type ReactEmbedWrapRenderer = (children: React.ReactElement | null) => React.ReactElement | null; export interface ReactEmbedProps { url: string; isDark?: boolean; width?: number; blocks?: Blocks; router?: ReactEmbedRouter; render?: ReactEmbedRenderer; fallback?: NonNullable | null; renderVoid?: ReactEmbedVoidRenderer; renderWrap?: ReactEmbedWrapRenderer; } export interface ReactEmbedState { url?: ParsedUrl; error?: Error; } export declare class ReactEmbed extends React.PureComponent { static defaultProps: { width: number; isDark: boolean; blocks: Blocks; router: ReactEmbedRouter; render: ReactEmbedRenderer; renderVoid: () => null; renderWrap: (children: any) => any; }; static getDerivedStateFromProps(props: any): { url: { url: any; hostname: string; pathname: string; search: string; hash: string; }; error?: undefined; } | { error: unknown; url?: undefined; } | null | undefined; static getDerivedStateFromError(error: any): { error: any; }; state: ReactEmbedState; url: undefined | ParsedUrl; render(): React.ReactElement> | null; } export default ReactEmbed;