import * as React from 'react'; export interface AttributesMap { [key: string]: string | boolean; } export interface HTMLToReactNode { data: string; type: string; name?: string; children?: HTMLToReactNode[]; attribs?: any; next: HTMLToReactNode; prev: HTMLToReactNode; parent: HTMLToReactNode; } type OverrideSettingsBase = { component?: React.ComponentType; allowedAttributes?: string[]; /** * Receives props from html-to-react including `key`. When spreading props into JSX, * extract key first (e.g. `const { key, ...rest } = props; return `) */ processNode?: (node: HTMLToReactNode, props: object) => React.ReactNode; shouldProcessNode?: (node: HTMLToReactNode) => boolean; }; interface OverrideSettingsComponent extends OverrideSettingsBase { component: React.ComponentType; } interface OverrideSettingsProcessNode extends OverrideSettingsBase { processNode: (node: HTMLToReactNode, props: object) => React.ReactNode; } export type MarkdownOverrideSetting = OverrideSettingsComponent | OverrideSettingsProcessNode; export type MarkdownOverrideSettings = { [i: string]: MarkdownOverrideSetting; }; export declare const processAttributes: (attributes?: AttributesMap) => {}; export declare const createTagOverride: (tagName: string, Override: MarkdownOverrideSetting) => { shouldProcessNode(node: HTMLToReactNode): boolean; processNode(node: HTMLToReactNode, children: HTMLToReactNode[], key: React.Key): React.ReactNode; }; export declare const createVideoOverride: (tagName: string, Override: MarkdownOverrideSetting) => { shouldProcessNode(node: HTMLToReactNode): boolean; processNode(node: HTMLToReactNode, children: HTMLToReactNode[], key: React.Key): React.ReactNode; }; export declare const createCodeBlockOverride: (tagName: string, Override: MarkdownOverrideSetting) => { shouldProcessNode(node: HTMLToReactNode): boolean; processNode(node: HTMLToReactNode, children: HTMLToReactNode[], key: React.Key): React.ReactNode; }; export declare const createInputOverride: (type: string, Override: MarkdownOverrideSetting) => { shouldProcessNode(node: HTMLToReactNode): boolean; processNode(node: HTMLToReactNode, children: HTMLToReactNode[], key: React.Key): React.ReactNode; }; export declare const standardOverrides: ({ shouldProcessNode(node: HTMLToReactNode): boolean; processNode(node: HTMLToReactNode): string; } | { shouldProcessNode(): boolean; processNode: (node: any, children: any, index: number) => any; })[]; export {};