import Model from '../../../parsers/mdlx/model'; import GenericObject from '../../../parsers/mdlx/genericobject'; import { MdlxType } from './utils'; export interface SanityTestMessage { type: 'error' | 'severe' | 'warning' | 'unused'; message: string; } export interface SanityTestNode { type: 'node'; name: string; errors: number; severe: number; warnings: number; unused: number; nodes: (SanityTestNode | SanityTestMessage)[]; uses?: number; } export default class SanityTestData { model: Model; objects: GenericObject[]; current: SanityTestNode; stack: SanityTestNode[]; map: Map; foundStand: boolean; foundDeath: boolean; boneUsageMap: Map; constructor(model: Model); /** * Adds nodes for all of the given objects. * Also handles the flat array of generic objects. */ addObjects(objects: MdlxType[]): void; /** * Pushes to the stack the node the given object maps to. * If this node does not exist, a new one will be created, which is used by internal nodes like material layers. */ push(object: MdlxType, index: number): void; /** * Pops the current node from the stack. */ pop(): void; /** * Adds a reference to the node the given object maps to. */ addReference(object: MdlxType): void; /** * Add a reference to the current node. */ addImplicitReference(): void; addError(message: string): void; addSevere(message: string): void; addWarning(message: string): void; addUnused(message: string): void; assertError(condition: boolean, message: string): void; assertSevere(condition: boolean, message: string): void; assertWarning(condition: boolean, message: string): void; assertUnused(condition: boolean, message: string): void; }