/** * 自定义标签渲染器 */ import { ComponentType } from 'react'; import { RichElement } from '../parser'; import { RichHTMLContext } from './type'; /** * 自定义组件 props */ export interface CustomComponentProps { element: RichElement; context: RichHTMLContext; } export declare type TagMatcher = (element: RichElement) => boolean; export declare type TagComponent = ComponentType; /** * 标签匹配器 */ export interface TagMapper { /** * 通配标签, 通常只会匹配到第一个 */ wildcard?: TagComponent[]; /** * 自定义匹配器 */ matcher?: Array<[TagMatcher, TagComponent]>; } /** * 注册自定义标签渲染,必须 parser 之前注册,或者需要手动添加标签白名单 * @param tag * @param component * @param matcher 可能存在多个相同的标签匹配,则需要提供匹配器, 我们将按照注册的顺序自上而下匹配。没有提供 matcher 的注册器会最后匹配 */ export declare function registerCustomComponent(tag: string, component: ComponentType, matcher?: (element: RichElement) => boolean): void; /** * 尝试获取自定义组件 */ export declare function getCustomComponent(element: RichElement): TagComponent | null; /** * 用于测试 */ export declare function cleanRegistry(): void; //# sourceMappingURL=register.d.ts.map