import { ChildNode, Element } from 'domhandler'; export type MarkTransform = ({ node, attribs }: { node?: any; attribs?: { [key: string]: string; }; }) => Element | undefined; interface MarkTransforms { [key: string]: MarkTransform; } export type ElementTransform = ({ node, attribs, children, }: { node?: any; attribs?: { [key: string]: string; }; children?: ChildNode[]; }) => Element | undefined; export type AttributeTransform = ({ node, }: { node: any; }) => { [key: string]: string; } | undefined; interface ElementTransforms { [key: string]: ElementTransform; } export interface BaseConfig { markMap: { [key: string]: string[]; }; elementMap: { [key: string]: string; }; elementAttributeTransform?: AttributeTransform; defaultTag?: string; encodeEntities?: boolean; alwaysEncodeBreakingEntities?: boolean; alwaysEncodeCodeEntities?: boolean; convertLineBreakToBr?: boolean; } export interface Config extends BaseConfig { markTransforms?: MarkTransforms; elementTransforms: ElementTransforms; } type UpdaterFunction = (el: Element) => Element | string; export type HtmlUpdaterFunctionMap = Record; export {};