import { Node, type NodeParams, type SocketsValues } from '../Node.svelte'; import type { DataType } from '../../plugins/typed-sockets'; import { XMLData } from './XMLData'; import { type Scalar, type Socket, Control } from '../../socket'; import { ComplexType, XmlSchema, type Attribute, type SaveData } from '@selenite/commons'; import { SvelteSet } from 'svelte/reactivity'; export declare class AddXmlAttributeControl extends Control { readonly xmlNode: XmlNode; constructor(xmlNode: XmlNode); } export type XmlConfig = { complex: ComplexType | SaveData; typePaths: string[][] | 'infinite'; priorities?: Record>; outLabel?: string; }; export type XmlNodeParams = NodeParams & { xmlConfig: XmlConfig; schema?: XmlSchema; initialValues?: Record; }; export declare class XmlToString extends Node<{ xml: Scalar<'xmlElement:*'>; }, { value: Scalar<'string'>; }> { constructor(params?: NodeParams); data(inputs?: SocketsValues<{ xml: Scalar<'xmlElement:*'>; }> | undefined): SocketsValues<{ value: Scalar<'string'>; }>; } export declare class XmlNode extends Node>, { value: Scalar; name: Scalar<'groupNameRef'>; }, { addXmlAttr: AddXmlAttributeControl; }, { attributeValues: Record; usedOptionalAttrs: string[]; }> { addOptionalAttribute(name: string): void; addAllOptionalAttributes(): void; removeOptionalAttribute(name: string): void; removeAllOptionalAttributes(): void; static counts: Record; xmlTag: string; xmlInputs: Record; xmlProperties: Set; optionalXmlAttributes: Set; usedOptionalAttrs: SvelteSet; xmlVectorProperties: Set; hasName: boolean; geosSchema: XmlSchema | undefined; set name(n: string); get name(): string | undefined; toJSON(): SaveData; childrenSockets: Map; complex: ComplexType; outLabel: string; typePaths: string[][] | 'infinite' | undefined; constructor(xmlNodeParams: XmlNodeParams); getXml(): Promise; setName(name: string): void; addInAttribute({ name, type, default: default_, required, doc, initialValues }: Attribute & { initialValues?: Record; }): void; data(inputs?: Record): { value: XMLData; name?: string; }; getProperties(inputs?: Record): Record; addXmlInData({ name, tag, type, isArray, index, required, description }: { name: string; tag?: string; type?: DataType; isArray?: boolean; index?: number; required?: boolean; description?: string; }): void; }