/**
 * Normalizes given name to a value that can be accepted by `createElement`
 * function on a document object.
 * @param name A name to process
 * @returns Normalized name
 */
export declare const normalizeXmlTagName: (name: string) => string;
/**
 * Converts a JSON value to an XML.
 *
 * To convert a JSON to XML call the `convert()` function. This creates the `doc` property with the XML document.
 * To transform the document into an XML string, use the `serialize()` function.
 *
 * This library work in both browser and NodeJS (via the `@xmldom/xmldom` library.)
 */
export declare class Json2Xml {
    /**
     * Whether it uses native or synthetic API.
     * Note, this will only happen in NodeJS.
     */
    syntheticApi: boolean;
    /**
     * Created document
     */
    doc?: XMLDocument;
    /**
     * The current node that is being processed.
     */
    currentNode?: Element;
    constructor();
    /**
     * Converts a JavaScript object to an XML document.
     * This creates the `doc` property with the JSON translated to the XML document.
     * Use the `serialize()` to convert it to string.
     *
     * @param data A JavaScript object to convert
     * @param root The name of the root node. Defaults to "root"
     */
    convert(data: unknown, root?: string): Promise<void>;
    /**
     * Converts the current document to a string.
     * @returns The converted document.
     */
    serialize(): Promise<string>;
    /**
     * A helper function to convert and serialize a JSON to XML.
     *
     * @param data The JSON data to serialize
     * @param root The name of the root node. Defaults to "root"
     * @returns The serialized to XML value.
     */
    serializeJson(data: unknown, root?: string): Promise<string>;
    /**
     * Depending on the environment it creates the XML document implementation.
     *
     * @returns The XML document to use
     */
    getDocument(): Promise<XMLDocument>;
    /**
     * Depending on the environment it creates the XML serializer implementation.
     *
     * @returns The XML serializer to use
     */
    getSerializer(): Promise<XMLSerializer>;
    /**
     * Processes a property which type is not yet detected
     * @param input The input to process.
     */
    processAny(input: unknown): void;
    /**
     * Processes an array.
     * @param input The array to process.
     */
    processArray(input: unknown[]): void;
    /**
     * Appends object properties to the current node.
     * @param input The object to process.
     */
    processObject(input: Record<string, unknown>): void;
    /**
     * Adds the value to the current node.
     * @param input the scalar to add
     */
    processScalar(input: string | number | boolean | null): void;
}
//# sourceMappingURL=Json2Xml.d.ts.map