/** * Given a hast tree and an optional vfile (for positional info), return a new * parsed-again hast tree. * * @param tree * Original hast tree. * @param file * Virtual file for positional info, optional. * @param options * Configuration. */ export const raw: (( tree: Node, file: VFile | undefined, options?: Options ) => Node) & ((tree: Node, options?: Options) => Node) export type VFile = import('vfile').VFile export type P5Document = import('parse5').Document export type P5Fragment = import('parse5').DocumentFragment export type P5Element = Omit export type P5Attribute = import('parse5').Attribute export type P5Location = Omit< import('parse5').Location, 'startOffset' | 'endOffset' > & { startOffset: number | undefined endOffset: number | undefined } export type P5ParserOptions = import('parse5').ParserOptions export type Root = import('hast').Root export type Doctype = import('hast').DocType export type Element = import('hast').Element export type Text = import('hast').Text export type Comment = import('hast').Comment export type Content = import('hast').Content export type Node = Root | Content export type Raw = import('../complex-types').Raw export type Stitch = Omit & { value: { stitch: Node } } export type Options = { /** * List of custom hast node types to pass through (keep) in hast. * If the passed through nodes have children, those children are expected to * be hast and will be handled. */ passThrough?: string[] | undefined } export type HiddenTokenizer = { /** * Way too simple, but works for us. */ __mixins: Array preprocessor: HiddenPreprocessor write: (value: string) => void _consume: () => number tokenQueue: Array state: string returnState: string charRefCode: number tempBuff: Array _flushCodePointsConsumedAsCharacterReference: Function lastStartTagName: string consumedAfterSnapshot: number active: boolean currentCharacterToken: HiddenToken | undefined currentToken: HiddenToken | undefined currentAttr: unknown NAMED_CHARACTER_REFERENCE_STATE: Function NUMERIC_CHARACTER_REFERENCE_END_STATE: Function } export type HiddenToken = Record & { location: P5Location } export type HiddenPreprocessor = { html: string | undefined pos: number lastGapPos: number lastCharPos: number gapStack: Array skipNextNewLine: boolean lastChunkWritten: boolean endOfChunkHit: boolean } export type HiddenLocationTracker = { currentAttrLocation: P5Location | undefined ctLoc: P5Location posTracker: HiddenPosTracker } export type HiddenPosTracker = { isEol: boolean lineStartPos: number droppedBufferSize: number offset: number col: number line: number }