import { type ParsedObject, type Range } from './types'; export declare abstract class Element { static readonly ALLOWED_CHILDREN: string[]; static readonly CHILDRREN_SPEC: Record; get static(): typeof Element; get NAMESPACE(): string; name: string; textContent?: string; xmlns?: ParsedObject; prefixedAttributes?: Record; children: Element[]; constructor(initialValues?: Partial, ctx?: ParsedObject); addElement(element: Element): void; getElements(name: string): Element[]; getAllElements(name: string | ((e: Element) => boolean)): Array<[child: Element, parent: Element]>; reject(message: string): void; verify(ctx: ParsedObject): void; formatParams(initialValues?: Partial, ctx?: ParsedObject): void; abstract verifyAttributes(ctx: ParsedObject): void; abstract verifyChildren(ctx: ParsedObject): void; get serializedProps(): ParsedObject; protected verifyInt(key: string, mandatory?: boolean): void; protected verifyUnsignedInt(key: string, mandatory?: boolean): void; protected verifyMandatory(key: string): void; protected verifyChidrenSpec(spec: Record): void; protected verifyAvailabilityTimeComplete(ctx: ParsedObject): void; private getElementsRecursively; }