| // Type definitions for html-minifier-terser 5.1 | 
| // Project: https://github.com/terser/html-minifier-terser#readme | 
| // Definitions by: Piotr Błażejewicz <https://github.com/peterblazejewicz> | 
| // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped | 
|   | 
| /** | 
|  * HTMLMinifier is a highly configurable, well-tested, JavaScript-based HTML minifier. | 
|  */ | 
| export function minify(value: string, options?: Options): string; | 
|   | 
| /** | 
|  * Most of the options are disabled by default | 
|  */ | 
| export interface Options { | 
|     /** | 
|      * Treat attributes in case sensitive manner (useful for custom HTML tags) | 
|      * @default false | 
|      */ | 
|     caseSensitive?: boolean | undefined; | 
|     /** | 
|      * Omit attribute values from boolean attributes | 
|      * @default false | 
|      */ | 
|     collapseBooleanAttributes?: boolean | undefined; | 
|     /** | 
|      * Don't leave any spaces between display:inline; | 
|      * elements when collapsing. Must be used in conjunction with collapseWhitespace=true | 
|      * @default false | 
|      */ | 
|     collapseInlineTagWhitespace?: boolean | undefined; | 
|     /** | 
|      * Collapse white space that contributes to text nodes in a document tree | 
|      * @default false | 
|      */ | 
|     collapseWhitespace?: boolean | undefined; | 
|     /** | 
|      * Always collapse to 1 space (never remove it entirely). Must be used in conjunction with `collapseWhitespace=true` | 
|      * @default false | 
|      */ | 
|     conservativeCollapse?: boolean | undefined; | 
|     /** | 
|      * Handle parse errors | 
|      * @default false | 
|      */ | 
|     continueOnParseError?: boolean | undefined; | 
|     /** | 
|      * Arrays of regex'es that allow to support custom attribute assign expressions (e.g. `'<div flex?="{{mode != cover}}"></div>'`) | 
|      * @default [] | 
|      */ | 
|     customAttrAssign?: RegExp[] | undefined; | 
|     /** | 
|      * Regex that specifies custom attribute to strip newlines from (e.g. `/ng-class/` | 
|      */ | 
|     customAttrCollapse?: RegExp | undefined; | 
|     /** | 
|      * Arrays of regex'es that allow to support custom attribute surround expressions (e.g. `<input {{#if value}}checked="checked"{{/if}}>`) | 
|      * @default [] | 
|      */ | 
|     customAttrSurround?: RegExp[] | undefined; | 
|     /** | 
|      * Arrays of regex'es that allow to support custom event attributes for `minifyJS` (e.g. `ng-click`) | 
|      * @default [/^on[a-z]{3,}$/] | 
|      */ | 
|     customEventAttributes?: RegExp[] | undefined; | 
|     /** | 
|      * Use direct Unicode characters whenever possible | 
|      * @default false | 
|      */ | 
|     decodeEntities?: boolean | undefined; | 
|     /** | 
|      * Parse input according to HTML5 specifications | 
|      * @default true | 
|      */ | 
|     html5?: boolean | undefined; | 
|     /** | 
|      * Array of regex'es that allow to ignore certain comments, when matched | 
|      * @default [ /^!/, /^\s*#/ ] | 
|      */ | 
|     ignoreCustomComments?: RegExp[] | undefined; | 
|     /** | 
|      * Array of regex'es that allow to ignore certain fragments, when matched (e.g. `<?php ... ?>`, `{{ ... }}`, etc.) | 
|      * @default [/<%[\s\S]*?%>/, /<\?[\s\S]\*?\?>/] | 
|      */ | 
|     ignoreCustomFragments?: RegExp[] | undefined; | 
|     /** | 
|      * Insert tags generated by HTML parser | 
|      * @default true | 
|      */ | 
|     includeAutoGeneratedTags?: boolean | undefined; | 
|     /** | 
|      * Keep the trailing slash on singleton elements | 
|      * @default false | 
|      */ | 
|     keepClosingSlash?: boolean | undefined; | 
|     /** | 
|      * Specify a maximum line length. Compressed output will be split by newlines at valid HTML split-points | 
|      */ | 
|     maxLineLength?: number | undefined; | 
|     /** | 
|      * Minify CSS in style elements and style attributes | 
|      * @default false | 
|      */ | 
|     minifyCSS?: boolean | object | ((text: string, type?: string) => string) | undefined; | 
|     /** | 
|      * Minify JavaScript in script elements and event attributes | 
|      * @default false | 
|      */ | 
|     minifyJS?: boolean | object | ((text: string, inline?: boolean) => string) | undefined; | 
|     /** | 
|      * Minify URLs in various attributes | 
|      * @default false | 
|      */ | 
|     minifyURLs?: boolean | string | object | ((text: string) => string) | undefined; | 
|     /** | 
|      * Always collapse to 1 line break (never remove it entirely) when whitespace between tags include a line break. | 
|      * Must be used in conjunction with `collapseWhitespace=true` | 
|      * @default false | 
|      */ | 
|     preserveLineBreaks?: boolean | undefined; | 
|     /** | 
|      * Prevents the escaping of the values of attributes | 
|      * @default false | 
|      */ | 
|     preventAttributesEscaping?: boolean | undefined; | 
|     /** | 
|      * Process contents of conditional comments through minifier | 
|      * @default false | 
|      */ | 
|     processConditionalComments?: boolean | undefined; | 
|     /** | 
|      * Array of strings corresponding to types of script elements to process through minifier | 
|      * (e.g. `text/ng-template`, `text/x-handlebars-template`, etc.) | 
|      * @default [] | 
|      */ | 
|     processScripts?: string[] | undefined; | 
|     /** | 
|      * Type of quote to use for attribute values (' or ") | 
|      */ | 
|     quoteCharacter?: string | undefined; | 
|     /** | 
|      * Remove quotes around attributes when possible | 
|      * @default false | 
|      */ | 
|     removeAttributeQuotes?: boolean | undefined; | 
|     /** | 
|      * Strip HTML comments | 
|      * @default false | 
|      */ | 
|     removeComments?: boolean | undefined; | 
|     /** | 
|      * Remove all attributes with whitespace-only values | 
|      * @default false | 
|      */ | 
|     removeEmptyAttributes?: boolean | ((attrName: string, tag: string) => boolean) | undefined; | 
|     /** | 
|      * Remove all elements with empty contents | 
|      * @default false | 
|      */ | 
|     removeEmptyElements?: boolean | undefined; | 
|     /** | 
|      * Remove optional tags | 
|      * @default false | 
|      */ | 
|     removeOptionalTags?: boolean | undefined; | 
|     /** | 
|      * Remove attributes when value matches default | 
|      * @default false | 
|      */ | 
|     removeRedundantAttributes?: boolean | undefined; | 
|     /** | 
|      * Remove `type="text/javascript"` from `script` tags. Other `type` attribute values are left intact | 
|      * @default false | 
|      */ | 
|     removeScriptTypeAttributes?: boolean | undefined; | 
|     /** | 
|      * Remove `type="text/css"` from `style` and `link` tags. Other `type` attribute values are left intact | 
|      * @default false | 
|      */ | 
|     removeStyleLinkTypeAttributes?: boolean | undefined; | 
|     /** | 
|      * Remove space between attributes whenever possible. **Note that this will result in invalid HTML!** | 
|      * @default false | 
|      */ | 
|     removeTagWhitespace?: boolean | undefined; | 
|     /** | 
|      * Sort attributes by frequency | 
|      * @default false | 
|      */ | 
|     sortAttributes?: boolean | undefined; | 
|     /** | 
|      * Sort style classes by frequency | 
|      * @default false | 
|      */ | 
|     sortClassName?: boolean | undefined; | 
|     /** | 
|      * Trim white space around `ignoreCustomFragments` | 
|      * @default false | 
|      */ | 
|     trimCustomFragments?: boolean | undefined; | 
|     /** | 
|      * Replaces the `doctype` with the short (HTML5) doctype | 
|      * @default false | 
|      */ | 
|     useShortDoctype?: boolean | undefined; | 
| } |