", {});
+parse5.parseFragment(element, "
", {
+ treeAdapter: defaultAdapter
+});
+
+// serialize
+const html = parse5.serialize(element);
+
+html; // $ExpectType string
+
+parse5.serialize(element, { treeAdapter: defaultAdapter });
+parse5.serialize(element, { treeAdapter: defaultAdapter });
+
+
+const adapter = defaultAdapter;
+
+adapter.createDocument(); // $ExpectType Document
+adapter.createDocumentFragment(); // $ExpectType DocumentFragment
+adapter.createElement("div", "namespace", [{ name: "someAttr", value: "42" }]); // $ExpectType Element
+adapter.createCommentNode("foo"); // $ExpectType CommentNode
+
+adapter.appendChild(document, element);
+adapter.insertBefore(document, element, element);
+adapter.setTemplateContent(element, fragment);
+
+adapter.getTemplateContent(element); // $ExpectType DocumentFragment
+
+adapter.setDocumentType(document, "name", "publicId", "systemId");
+adapter.setDocumentMode(document, "quirks");
+
+adapter.getDocumentMode(document); // $ExpectType DocumentMode
+
+adapter.detachNode(element);
+adapter.insertText(element, "text");
+adapter.insertTextBefore(document, "text", element);
+adapter.adoptAttributes(element, [{ name: "someAttr", value: "42" }]);
+
+adapter.getFirstChild(element); // $ExpectType Node
+adapter.getChildNodes(element)[0]; // $ExpectType Node
+adapter.getParentNode(element); // $ExpectType ParentNode
+adapter.getAttrList(element)[0]; // $ExpectType Attribute
+adapter.getTagName(element); // $ExpectType string
+adapter.getNamespaceURI(element); // $ExpectType string
+adapter.isTextNode(element); // $ExpectType boolean
+adapter.isCommentNode(element); // $ExpectType boolean
+adapter.isDocumentTypeNode(element); // $ExpectType boolean
+adapter.isElementNode(element); // $ExpectType boolean
diff --git a/types/parse5/v4/tsconfig.json b/types/parse5/v4/tsconfig.json
new file mode 100644
index 0000000000..97e1cf7849
--- /dev/null
+++ b/types/parse5/v4/tsconfig.json
@@ -0,0 +1,26 @@
+{
+ "compilerOptions": {
+ "module": "commonjs",
+ "lib": [
+ "es6"
+ ],
+ "noImplicitAny": true,
+ "noImplicitThis": true,
+ "strictNullChecks": true,
+ "strictFunctionTypes": true,
+ "baseUrl": "../../",
+ "typeRoots": [
+ "../../"
+ ],
+ "types": [],
+ "noEmit": true,
+ "forceConsistentCasingInFileNames": true,
+ "paths": {
+ "parse5": [ "parse5/v4" ]
+ }
+ },
+ "files": [
+ "index.d.ts",
+ "parse5-tests.ts"
+ ]
+}
diff --git a/types/parse5/v4/tslint.json b/types/parse5/v4/tslint.json
new file mode 100644
index 0000000000..7646a8bd15
--- /dev/null
+++ b/types/parse5/v4/tslint.json
@@ -0,0 +1,17 @@
+{
+ "extends": "dtslint/dt.json",
+ "rules": {
+ "comment-format": false,
+ "strict-export-declare-modifiers": false,
+ "semicolon": false,
+ "max-line-length": false,
+ "no-consecutive-blank-lines": false,
+ "typedef-whitespace": false,
+ "whitespace": false,
+ "ban-types": false,
+ "no-unnecessary-qualifier": false,
+ "jsdoc-format": false,
+ "no-var-keyword": false,
+ "unified-signatures": false
+ }
+}