@manuth/woltlab-compiler
Version:
A compiler for generating WoltLab-Package `.tar` Archives and other WoltLab-Package Components
106 lines (105 loc) • 2.31 kB
TypeScript
import { INode } from "./Generic/INode.js";
import { INodeOptions } from "./INodeOptions.js";
import { NodeItem } from "./NodeItem.js";
/**
* Represents a node.
*
* @template TItem
* The type of the node-item.
*
* @template TOptions
* The type of the options for generating nodes.
*/
export declare class Node<TItem extends NodeItem, TOptions> implements INode<TItem> {
/**
* The id of the node.
*/
private id;
/**
* The name of the node.
*/
private name;
/**
* The item of the node.
*/
private item;
/**
* The parent of the node.
*/
private parent;
/**
* The children of the node.
*/
private nodes;
/**
* Initializes a new instance of the {@link Node `Node<TItem, TOptions>`} class.
*
* @param options
* The options for generating the object.
*
* @param generator
* The generator-function for generating sub-nodes.
*/
constructor(options: INodeOptions<TOptions>, generator: (node: Node<TItem, TOptions>, options: TOptions) => TItem);
/**
* Gets the parents of the node.
*/
protected get Parents(): Array<Node<TItem, TOptions>>;
/**
* Gets or sets the id of the node.
*/
get ID(): string;
/**
* @inheritdoc
*/
set ID(value: string);
/**
* Gets or sets the name of the node.
*/
get Name(): string;
/**
* @inheritdoc
*/
set Name(value: string);
/**
* Gets the full name of the node.
*/
get FullName(): string;
/**
* @inheritdoc
*/
get Item(): TItem;
/**
* @inheritdoc
*/
get Parent(): Node<TItem, TOptions>;
/**
* @inheritdoc
*/
set Parent(value: Node<TItem, TOptions>);
/**
* @inheritdoc
*/
get Nodes(): Array<Node<TItem, TOptions>>;
/**
* @inheritdoc
*
* @returns
* All nodes inside this node.
*/
GetAllNodes(): Array<Node<TItem, TOptions>>;
/**
* @inheritdoc
*
* @returns
* The objects of the node.
*/
GetObjects(): Record<string, unknown>;
/**
* Returns a string which represents the current object.
*
* @returns
* A string which represents the object.
*/
toString(): string;
}