/** * ------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the MIT License. * See License in the project root for license information. * ------------------------------------------------------------------------------------------- */ import type { Guid } from "../utils/guidUtils.js"; import type { DateOnly } from "../dateOnly.js"; import type { Duration } from "../duration.js"; import type { TimeOnly } from "../timeOnly.js"; import type { Parsable } from "./parsable.js"; import type { ParsableFactory } from "./parsableFactory.js"; /** * Interface for a deserialization node in a parse tree. This interface provides an abstraction layer over serialization formats, libraries and implementations. */ export interface ParseNode { /** * Gets the string value of the node. * @returns the string value of the node. */ getStringValue(): string | undefined; /** * Gets a new parse node for the given identifier. * @param identifier the identifier of the current node property. * @returns a new parse node for the given identifier. */ getChildNode(identifier: string): ParseNode | undefined; /** * Gets the boolean value of the node. * @returns the boolean value of the node. */ getBooleanValue(): boolean | undefined; /** * Gets the Number value of the node. * @returns the Number value of the node. */ getNumberValue(): number | undefined; /** * Gets the Guid value of the node. * @returns the Guid value of the node. */ getGuidValue(): Guid | undefined; /** * Gets the Date value of the node. * @returns the Date value of the node. */ getDateValue(): Date | undefined; /** * Gets the Duration value of the node. * @returns the Duration value of the node. */ getDurationValue(): Duration | undefined; /** * Gets the DateOnly value of the node. * @returns the DateOnly value of the node. */ getDateOnlyValue(): DateOnly | undefined; /** * Gets the TimeOnly value of the node. * @returns the TimeOnly value of the node. */ getTimeOnlyValue(): TimeOnly | undefined; /** * Gets the collection of primitive values of the node. * @returns the collection of primitive values of the node. */ getCollectionOfPrimitiveValues(): T[] | undefined; /** * Gets the collection of object values of the node. * @returns the collection of object values of the node. */ getCollectionOfObjectValues(parsableFactory: ParsableFactory): T[] | undefined; /** * Gets the model object value of the node. * @returns the model object value of the node. */ getObjectValue(parsableFactory: ParsableFactory): T; /** * Gets the Enum values of the node. * @returns the Enum values of the node. */ getCollectionOfEnumValues(type: any): T[]; /** * Gets the Enum value of the node. * @returns the Enum value of the node. */ getEnumValue(type: any): T | undefined; /** * Gets the callback called before the node is deserialized. * @returns the callback called before the node is deserialized. */ onBeforeAssignFieldValues: ((value: Parsable) => void) | undefined; /** * Gets the callback called after the node is deserialized. * @returns the callback called after the node is deserialized. */ onAfterAssignFieldValues: ((value: Parsable) => void) | undefined; /** * Gets the byte array value of the node. * @returns the byte array value of the node. */ getByteArrayValue(): ArrayBuffer | undefined; } //# sourceMappingURL=parseNode.d.ts.map