export = rehypeFilter
/**
 * @typedef {import('hast').Root} Root
 * @typedef {import('hast').Element} Element
 *
 * @callback AllowElement
 * @param {Element} element
 * @param {number} index
 * @param {Element|Root} parent
 * @returns {boolean}
 *
 * @typedef {Object} RehypeFilterOptions
 * @property {Array.<string>} [allowedElements]
 * @property {Array.<string>} [disallowedElements=[]]
 * @property {AllowElement} [allowElement]
 * @property {boolean} [unwrapDisallowed=false]
 */
/**
 * @param {RehypeFilterOptions} options
 */
declare function rehypeFilter(
  options: RehypeFilterOptions
): (tree: Root) => void
declare namespace rehypeFilter {
  export {Root, Element, AllowElement, RehypeFilterOptions}
}
type RehypeFilterOptions = {
  allowedElements?: Array<string>
  disallowedElements?: Array<string>
  allowElement?: AllowElement
  unwrapDisallowed?: boolean
}
type Root = import('hast').Root
type Element = import('hast').Element
type AllowElement = (
  element: Element,
  index: number,
  parent: Element | Root
) => boolean
