import { ReactNode } from 'react'; import { EmbedReferences, IFrameProps, ImageProps, RichTextContent, VideoProps, ClassProps, LinkProps } from '@graphcms/rich-text-types'; export interface DefaultElementProps { children: ReactNode; } export interface ClassRendererProps extends DefaultElementProps, Partial { } export interface LinkRendererProps extends DefaultElementProps, Partial { } declare type DefaultNodeRenderer = (props: DefaultElementProps) => JSX.Element; declare type LinkNodeRenderer = (props: LinkRendererProps) => JSX.Element; declare type ClassNodeRenderer = (props: ClassRendererProps) => JSX.Element; declare type ImageNodeRenderer = (props: Partial) => JSX.Element; declare type VideoNodeRenderer = (props: Partial) => JSX.Element; declare type IFrameNodeRenderer = (props: Partial) => JSX.Element; declare type EmbedNodeRenderer = (props: any) => JSX.Element; export declare type NodeRendererType = { a?: LinkNodeRenderer; class?: ClassNodeRenderer; img?: ImageNodeRenderer; video?: VideoNodeRenderer; iframe?: IFrameNodeRenderer; h1?: DefaultNodeRenderer; h2?: DefaultNodeRenderer; h3?: DefaultNodeRenderer; h4?: DefaultNodeRenderer; h5?: DefaultNodeRenderer; h6?: DefaultNodeRenderer; p?: DefaultNodeRenderer; ul?: DefaultNodeRenderer; ol?: DefaultNodeRenderer; li?: DefaultNodeRenderer; list_item_child?: DefaultNodeRenderer; table?: DefaultNodeRenderer; table_head?: DefaultNodeRenderer; table_body?: DefaultNodeRenderer; table_row?: DefaultNodeRenderer; table_cell?: DefaultNodeRenderer; table_header_cell?: DefaultNodeRenderer; blockquote?: DefaultNodeRenderer; bold?: DefaultNodeRenderer; italic?: DefaultNodeRenderer; underline?: DefaultNodeRenderer; code?: DefaultNodeRenderer; code_block?: DefaultNodeRenderer; Asset?: { application?: EmbedNodeRenderer; audio?: EmbedNodeRenderer; font?: EmbedNodeRenderer; image?: EmbedNodeRenderer; model?: EmbedNodeRenderer; text?: EmbedNodeRenderer; video?: EmbedNodeRenderer; [key: string]: EmbedNodeRenderer | undefined; }; embed?: { [key: string]: EmbedNodeRenderer | undefined; }; link?: { [key: string]: EmbedNodeRenderer | undefined; }; }; export declare type RichTextProps = { content: RichTextContent; references?: EmbedReferences; renderers?: NodeRendererType; }; export {};