import Element from "./Element";
/**
* This is how the XML is structured for an ElementTypeSpecifier's choice option.
* Example:
*
*
* It could also be how the XML is structured for the ListTypeSpecifier's NamedTypeSpecifier child:
*
*
*
*/
export interface SimpleSpecifierXml {
$: {
modelName: string;
name: string;
};
}
/**
* This is how the XML is structured for an ElementTypeSpecifier
* Example:
*
*
*
*
*
* Or:
*
*/
export interface ElementTypeSpecifierXml {
$: {
"xsi:type": string;
elementType?: string;
};
"ns4:choice"?: Array;
"ns4:elementTypeSpecifier"?: Array;
}
/**
* This interface defines how an Element's XML comes from xml2js
*/
export interface ElementXml {
$: {
name: string;
elementType?: string;
};
"ns4:elementTypeSpecifier"?: Array;
}
/**
* This class is responsible for converting the XML object structure created by xml2js
* into one of the 3 different Element types: SimpleElement, ChoiceElement or ListElement
*/
export default class ElementFactory {
static createElement(input: ElementXml): Element;
}
//# sourceMappingURL=ElementFactory.d.ts.map