import { Test } from 'nodeunit';
declare const _default: {
    'the "Root" construct is a special construct which can be used as the root of the tree'(test: Test): void;
    'constructs cannot be created with an empty name unless they are root'(test: Test): void;
    'construct.name returns the name of the construct'(test: Test): void;
    'construct id can use any character except the path separator'(test: Test): void;
    'construct.uniqueId returns a tree-unique alphanumeric id of this construct'(test: Test): void;
    'cannot calculate uniqueId if the construct path is ["Default"]'(test: Test): void;
    'construct.getChildren() returns an array of all children'(test: Test): void;
    'construct.findChild(name) can be used to retrieve a child from a parent'(test: Test): void;
    'construct.getChild(name) can be used to retrieve a child from a parent'(test: Test): void;
    'construct.toString() and construct.toTreeString() can be used for diagnostics'(test: Test): void;
    'construct.getContext(key) can be used to read a value from context defined at the root level'(test: Test): void;
    'construct.setContext(k,v) sets context at some level and construct.getContext(key) will return the lowermost value defined in the stack'(test: Test): void;
    'construct.setContext(key, value) can only be called before adding any children'(test: Test): void;
    'construct.pathParts returns an array of strings of all names from root to node'(test: Test): void;
    'if a root construct has a name, it should be included in the path'(test: Test): void;
    'construct can not be created with the name of a sibling'(test: Test): void;
    'addMetadata(type, data) can be used to attach metadata to constructs FIND_ME'(test: Test): void;
    'addMetadata(type, undefined/null) is ignored'(test: Test): void;
    'addWarning(message) can be used to add a "WARNING" message entry to the construct'(test: Test): void;
    'addError(message) can be used to add a "ERROR" message entry to the construct'(test: Test): void;
    'addInfo(message) can be used to add an "INFO" message entry to the construct'(test: Test): void;
    'multiple children of the same type, with explicit names are welcome'(test: Test): void;
    'construct.required(props, name) can be used to validate that required properties are defined'(test: Test): void;
    'Construct name validation can be overridden'(test: Test): void;
    'construct.validate() can be implemented to perform validation, construct.validateTree() will return all errors from the subtree (DFS)'(test: Test): void;
    'construct.lock() protects against adding children anywhere under this construct (direct or indirect)'(test: Test): void;
};
export = _default;
