import { Buffer } from '../platform'; import { FieldDefinition, JSONData, LanguageSet, TranslationContext } from './Definitions'; import XMLElement, { JSONElement } from './Element'; type ElementPath = Array<{ namespace: string | null; element: string; }>; export declare function createElement(namespace: string | null | undefined, name: string, parentNamespace?: string, parent?: XMLElement): XMLElement; export declare function getLang(xml: XMLElement, lang?: string): string; export declare function getTargetLang(children: XMLElement[], context: TranslationContext): string; export declare function findAll(xml: XMLElement, namespace: string | null | undefined, element: string, lang?: string): XMLElement[]; export declare function findOrCreate(xml: XMLElement, namespace: string | null, element: string, lang?: string): XMLElement; export interface CreateAttributeOptions { staticDefault?: T; dynamicDefault?: (raw?: string) => T | undefined; emitEmpty?: boolean; name: string; namespace?: string | null; prefix?: string; parseValue(raw: string): T | undefined; writeValue(raw: T | E): string; } export interface CreateChildAttributeOptions extends CreateAttributeOptions { element: string; attributeNamespace?: string | null; converter?: FieldDefinition; } export interface CreateTextOptions { emitEmpty?: boolean; staticDefault?: T; dynamicDefault?: (raw?: string) => T | undefined; parseValue(raw: string): T | undefined; writeValue(raw: T | E): string; } export interface CreateChildTextOptions extends CreateTextOptions { emitEmpty?: boolean; matchLanguage?: boolean; element: string; namespace: string | null; } export declare const attribute: (name: string, defaultValue?: string | undefined, opts?: Partial>) => FieldDefinition; export declare const booleanAttribute: (name: string, defaultValue?: boolean | undefined, opts?: Partial>) => FieldDefinition; export declare const integerAttribute: (name: string, defaultValue?: number | undefined, opts?: Partial>) => FieldDefinition; export declare const floatAttribute: (name: string, defaultValue?: number | undefined, opts?: Partial>) => FieldDefinition; export declare const dateAttribute: (name: string, defaultValue?: Date | undefined, opts?: Partial>) => FieldDefinition; export declare const namespacedAttribute: (prefix: string, namespace: string, name: string, defaultValue?: string | undefined, opts?: Partial>) => FieldDefinition; export declare const namespacedBooleanAttribute: (prefix: string, namespace: string, name: string, defaultValue?: boolean | undefined, opts?: Partial>) => FieldDefinition; export declare const namespacedIntegerAttribute: (prefix: string, namespace: string, name: string, defaultValue?: number | undefined, opts?: Partial>) => FieldDefinition; export declare const namespacedFloatAttribute: (prefix: string, namespace: string, name: string, defaultValue?: number | undefined, opts?: Partial>) => FieldDefinition; export declare const namespacedDateAttribute: (prefix: string, namespace: string, name: string, defaultValue?: Date | undefined, opts?: Partial>) => FieldDefinition; export declare const childAttribute: (namespace: string | null, element: string, name: string, defaultValue?: string | undefined, opts?: Partial>) => FieldDefinition; export declare const childBooleanAttribute: (namespace: string | null, element: string, name: string, defaultValue?: boolean | undefined, opts?: Partial>) => FieldDefinition; export declare const childIntegerAttribute: (namespace: string | null, element: string, name: string, defaultValue?: number | undefined, opts?: Partial>) => FieldDefinition; export declare const childFloatAttribute: (namespace: string | null, element: string, name: string, defaultValue?: number | undefined, opts?: Partial>) => FieldDefinition; export declare const childDateAttribute: (namespace: string | null, element: string, name: string, defaultValue?: Date | undefined, opts?: Partial>) => FieldDefinition; export declare const text: (defaultValue?: string) => FieldDefinition; export declare const textJSON: () => FieldDefinition; export declare const textBuffer: (encoding?: BufferEncoding) => FieldDefinition; export declare function languageAttribute(): FieldDefinition; export declare const childLanguageAttribute: (namespace: string | null, element: string) => FieldDefinition; export declare const childText: (namespace: string | null, element: string, defaultValue?: string, emitEmpty?: boolean) => FieldDefinition; export declare const childTextBuffer: (namespace: string | null, element: string, encoding?: BufferEncoding) => FieldDefinition; export declare const childDate: (namespace: string | null, element: string) => FieldDefinition; export declare const childInteger: (namespace: string | null, element: string, defaultValue?: number) => FieldDefinition; export declare const childFloat: (namespace: string | null, element: string, defaultValue?: number) => FieldDefinition; export declare const childJSON: (namespace: string | null, element: string) => FieldDefinition; export declare function childTimezoneOffset(namespace: string | null, element: string): FieldDefinition; export declare function childBoolean(namespace: string | null, element: string): FieldDefinition; export declare function deepChildText(path: ElementPath, defaultValue?: string): FieldDefinition; export declare function deepChildInteger(path: ElementPath, defaultValue?: number): FieldDefinition; export declare function deepChildBoolean(path: ElementPath): FieldDefinition; export declare function deepMultipleChildText(path: ElementPath): FieldDefinition; export declare function childEnum(namespace: string | null, elements: Array, defaultValue?: string): FieldDefinition; export declare function childDoubleEnum(namespace: string | null, parentElements: string[], childElements: string[], defaultValue?: [string] | [string, string]): FieldDefinition<[string] | [string, string]>; export declare function multipleChildText(namespace: string | null, element: string): FieldDefinition; export declare function multipleChildAttribute(namespace: string | null, element: string, name: string): FieldDefinition; export declare function multipleChildIntegerAttribute(namespace: string | null, element: string, name: string): FieldDefinition; export declare function childAlternateLanguageText(namespace: string | null, element: string): FieldDefinition>; export declare function multipleChildAlternateLanguageText(namespace: string | null, element: string): FieldDefinition>; export declare function multipleChildEnum(namespace: string | null, elements: Array): FieldDefinition; export declare function splicePath(namespace: string | null, element: string, path: string, multiple?: boolean): FieldDefinition; export declare function staticValue(value: T): FieldDefinition; export declare function childRawElement(namespace: string | null, element: string, sanitizer?: string): FieldDefinition; export declare function childLanguageRawElement(namespace: string | null, element: string, sanitizer?: string): FieldDefinition; export declare function childAlternateLanguageRawElement(namespace: string | null, element: string, sanitizer?: string): FieldDefinition, LanguageSet>; export declare function parameterMap(namespace: string, element: string, keyName: string, valueName: string): FieldDefinition; export {};