| import { ElementType } from "domelementtype"; |
| /** |
| * This object will be used as the prototype for Nodes when creating a |
| * DOM-Level-1-compliant structure. |
| */ |
| export declare class Node { |
| type: ElementType; |
| /** Parent of the node */ |
| parent: NodeWithChildren | null; |
| /** Previous sibling */ |
| prev: Node | null; |
| /** Next sibling */ |
| next: Node | null; |
| /** The start index of the node. Requires `withStartIndices` on the handler to be `true. */ |
| startIndex: number | null; |
| /** The end index of the node. Requires `withEndIndices` on the handler to be `true. */ |
| endIndex: number | null; |
| /** |
| * `parse5` source code location info. |
| * |
| * Available if parsing with parse5 and location info is enabled. |
| */ |
| sourceCodeLocation?: { |
| startOffset: number; |
| endOffset: number; |
| startLine: number; |
| endLine: number; |
| startColumn: number; |
| endColumn: number; |
| }; |
| /** |
| * |
| * @param type The type of the node. |
| */ |
| constructor(type: ElementType); |
| /** |
| * [DOM spec](https://dom.spec.whatwg.org/#dom-node-nodetype)-compatible |
| * node {@link type}. |
| */ |
| get nodeType(): number; |
| /** |
| * Same as {@link parent}. |
| * [DOM spec](https://dom.spec.whatwg.org)-compatible alias. |
| */ |
| get parentNode(): NodeWithChildren | null; |
| set parentNode(parent: NodeWithChildren | null); |
| /** |
| * Same as {@link prev}. |
| * [DOM spec](https://dom.spec.whatwg.org)-compatible alias. |
| */ |
| get previousSibling(): Node | null; |
| set previousSibling(prev: Node | null); |
| /** |
| * Same as {@link next}. |
| * [DOM spec](https://dom.spec.whatwg.org)-compatible alias. |
| */ |
| get nextSibling(): Node | null; |
| set nextSibling(next: Node | null); |
| /** |
| * Clone this node, and optionally its children. |
| * |
| * @param recursive Clone child nodes as well. |
| * @returns A clone of the node. |
| */ |
| cloneNode<T extends Node>(this: T, recursive?: boolean): T; |
| } |
| /** |
| * A node that contains some data. |
| */ |
| export declare class DataNode extends Node { |
| data: string; |
| /** |
| * @param type The type of the node |
| * @param data The content of the data node |
| */ |
| constructor(type: ElementType.Comment | ElementType.Text | ElementType.Directive, data: string); |
| /** |
| * Same as {@link data}. |
| * [DOM spec](https://dom.spec.whatwg.org)-compatible alias. |
| */ |
| get nodeValue(): string; |
| set nodeValue(data: string); |
| } |
| /** |
| * Text within the document. |
| */ |
| export declare class Text extends DataNode { |
| constructor(data: string); |
| } |
| /** |
| * Comments within the document. |
| */ |
| export declare class Comment extends DataNode { |
| constructor(data: string); |
| } |
| /** |
| * Processing instructions, including doc types. |
| */ |
| export declare class ProcessingInstruction extends DataNode { |
| name: string; |
| constructor(name: string, data: string); |
| /** If this is a doctype, the document type name (parse5 only). */ |
| "x-name"?: string; |
| /** If this is a doctype, the document type public identifier (parse5 only). */ |
| "x-publicId"?: string; |
| /** If this is a doctype, the document type system identifier (parse5 only). */ |
| "x-systemId"?: string; |
| } |
| /** |
| * A `Node` that can have children. |
| */ |
| export declare class NodeWithChildren extends Node { |
| children: Node[]; |
| /** |
| * @param type Type of the node. |
| * @param children Children of the node. Only certain node types can have children. |
| */ |
| constructor(type: ElementType.Root | ElementType.CDATA | ElementType.Script | ElementType.Style | ElementType.Tag, children: Node[]); |
| /** First child of the node. */ |
| get firstChild(): Node | null; |
| /** Last child of the node. */ |
| get lastChild(): Node | null; |
| /** |
| * Same as {@link children}. |
| * [DOM spec](https://dom.spec.whatwg.org)-compatible alias. |
| */ |
| get childNodes(): Node[]; |
| set childNodes(children: Node[]); |
| } |
| /** |
| * The root node of the document. |
| */ |
| export declare class Document extends NodeWithChildren { |
| constructor(children: Node[]); |
| /** [Document mode](https://dom.spec.whatwg.org/#concept-document-limited-quirks) (parse5 only). */ |
| "x-mode"?: "no-quirks" | "quirks" | "limited-quirks"; |
| } |
| /** |
| * The description of an individual attribute. |
| */ |
| interface Attribute { |
| name: string; |
| value: string; |
| namespace?: string; |
| prefix?: string; |
| } |
| /** |
| * An element within the DOM. |
| */ |
| export declare class Element extends NodeWithChildren { |
| name: string; |
| attribs: { |
| [name: string]: string; |
| }; |
| /** |
| * @param name Name of the tag, eg. `div`, `span`. |
| * @param attribs Object mapping attribute names to attribute values. |
| * @param children Children of the node. |
| */ |
| constructor(name: string, attribs: { |
| [name: string]: string; |
| }, children?: Node[], type?: ElementType.Tag | ElementType.Script | ElementType.Style); |
| /** |
| * Same as {@link name}. |
| * [DOM spec](https://dom.spec.whatwg.org)-compatible alias. |
| */ |
| get tagName(): string; |
| set tagName(name: string); |
| get attributes(): Attribute[]; |
| /** Element namespace (parse5 only). */ |
| namespace?: string; |
| /** Element attribute namespaces (parse5 only). */ |
| "x-attribsNamespace"?: Record<string, string>; |
| /** Element attribute namespace-related prefixes (parse5 only). */ |
| "x-attribsPrefix"?: Record<string, string>; |
| } |
| /** |
| * @param node Node to check. |
| * @returns `true` if the node is a `Element`, `false` otherwise. |
| */ |
| export declare function isTag(node: Node): node is Element; |
| /** |
| * @param node Node to check. |
| * @returns `true` if the node has the type `CDATA`, `false` otherwise. |
| */ |
| export declare function isCDATA(node: Node): node is NodeWithChildren; |
| /** |
| * @param node Node to check. |
| * @returns `true` if the node has the type `Text`, `false` otherwise. |
| */ |
| export declare function isText(node: Node): node is Text; |
| /** |
| * @param node Node to check. |
| * @returns `true` if the node has the type `Comment`, `false` otherwise. |
| */ |
| export declare function isComment(node: Node): node is DataNode; |
| /** |
| * @param node Node to check. |
| * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise. |
| */ |
| export declare function isDirective(node: Node): node is ProcessingInstruction; |
| /** |
| * @param node Node to check. |
| * @returns `true` if the node has the type `ProcessingInstruction`, `false` otherwise. |
| */ |
| export declare function isDocument(node: Node): node is Document; |
| /** |
| * @param node Node to check. |
| * @returns `true` if the node is a `NodeWithChildren` (has children), `false` otherwise. |
| */ |
| export declare function hasChildren(node: Node): node is NodeWithChildren; |
| /** |
| * Clone a node, and optionally its children. |
| * |
| * @param recursive Clone child nodes as well. |
| * @returns A clone of the node. |
| */ |
| export declare function cloneNode<T extends Node>(node: T, recursive?: boolean): T; |
| export {}; |
| //# sourceMappingURL=node.d.ts.map |