// Type definitions for sanitize-html 2.6 // Project: https://github.com/punkave/sanitize-html // Definitions by: Rogier Schouten // Afshin Darian // Rinze de Laat // A penguin // Johan Davidsson // Jianrong Yu // GP // Dariusz Syncerek // Piotr Błażejewicz // Pirasis Leelatanon // Alex Rantos // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped import { ParserOptions } from "htmlparser2"; export = sanitize; declare function sanitize(dirty: string, options?: sanitize.IOptions): string; declare namespace sanitize { interface Attributes { [attr: string]: string; } interface Tag { tagName: string; attribs: Attributes; text?: string | undefined; } type Transformer = (tagName: string, attribs: Attributes) => Tag; type AllowedAttribute = string | { name: string; multiple?: boolean | undefined; values: string[] }; type DisallowedTagsModes = 'discard' | 'escape' | 'recursiveEscape'; // tslint:disable-next-line:interface-name interface IDefaults { allowedAttributes: Record; allowedSchemes: string[]; allowedSchemesByTag: { [index: string]: string[] }; allowedSchemesAppliedToAttributes: string[]; allowedTags: string[]; allowProtocolRelative: boolean; disallowedTagsMode: DisallowedTagsModes; enforceHtmlBoundary: boolean; selfClosing: string[]; } // tslint:disable-next-line:interface-name interface IFrame { tag: string; attribs: { [index: string]: string }; text: string; tagPosition: number; } // tslint:disable-next-line:interface-name interface IOptions { allowedAttributes?: Record | false | undefined; allowedStyles?: { [index: string]: { [index: string]: RegExp[] } } | undefined; allowedClasses?: { [index: string]: boolean | Array } | undefined; allowedIframeDomains?: string[] | undefined; allowedIframeHostnames?: string[] | undefined; allowIframeRelativeUrls?: boolean | undefined; allowedSchemes?: string[] | boolean | undefined; allowedSchemesByTag?: { [index: string]: string[] } | boolean | undefined; allowedSchemesAppliedToAttributes?: string[] | undefined; allowedScriptDomains?: string[] | undefined; allowedScriptHostnames?: string[] | undefined; allowProtocolRelative?: boolean | undefined; allowedTags?: string[] | false | undefined; allowVulnerableTags?: boolean | undefined; textFilter?: ((text: string, tagName: string) => string) | undefined; exclusiveFilter?: ((frame: IFrame) => boolean) | undefined; nestingLimit?: number | undefined; nonTextTags?: string[] | undefined; selfClosing?: string[] | undefined; transformTags?: { [tagName: string]: string | Transformer } | undefined; parser?: ParserOptions | undefined; disallowedTagsMode?: DisallowedTagsModes | undefined; /** * Setting this option to true will instruct sanitize-html to discard all characters outside of html tag boundaries * -- before `` and after `` tags * @see {@link https://github.com/apostrophecms/sanitize-html/#discarding-text-outside-of-htmlhtml-tags} * @default true */ enforceHtmlBoundary?: boolean | undefined; } const defaults: IDefaults; const options: IOptions; function simpleTransform(tagName: string, attribs: Attributes, merge?: boolean): Transformer; }