import { CompactID } from "../reader"; import { GUID } from "../utils/guid"; import { OneNoteObject } from "../onestore/object-space"; import { PropertySet as RawPropertySet } from "../onestore/file-node-types/shared/PropertySet"; import { PropertyType } from "./property-type"; import { fromHex, toHex } from "../utils/reader"; export type PropertyData = boolean | number | { cb: number; Data: Uint8Array; } | Uint8Array | CompactID | CompactID[] | { propertyId: number; propertySets: RawPropertySet[]; } | RawPropertySet[] | RawPropertySet | null; type IdMapping = Map; /** * A wrapper over an object's raw property set that provides typed access to * properties, mirroring the `Object` API of the Rust onenote_parser crate. */ export declare class ObjectProps { private readonly object; private readonly mapping; constructor(object: OneNoteObject, mapping: IdMapping); private get propSet(); get jcid(): import("../reader").JCID; get contextId(): string; get fileData(): Uint8Array | undefined; get fileExtension(): string | undefined; /** The index of the property with the given id, if present. */ indexOf(propType: PropertyType): number; /** Returns the raw property value at the given index. */ valueAt(index: number): PropertyData | undefined; has(propType: PropertyType): boolean; getBool(propType: PropertyType): boolean | undefined; getBoolOrDefault(propType: PropertyType, def?: boolean): boolean; getU8(propType: PropertyType): number | undefined; getU16(propType: PropertyType): number | undefined; getU32(propType: PropertyType): number | undefined; getU64(propType: PropertyType): number | undefined; /** A lossless u8 conversion accepting any integer width. */ getU8Lossless(propType: PropertyType): number | undefined; private getNumber; /** Parse a 4-byte property as an f32. */ getF32(propType: PropertyType): number | undefined; getVec(propType: PropertyType): Uint8Array | undefined; getVecU16(propType: PropertyType): number[] | undefined; getVecU32(propType: PropertyType): number[] | undefined; getVecI32(propType: PropertyType): number[] | undefined; getVecF32(propType: PropertyType): number[] | undefined; getString(propType: PropertyType): string | undefined; getAscii(propType: PropertyType): string | undefined; getGuid(propType: PropertyType): GUID | undefined; getGuidString(propType: PropertyType): string | undefined; /** A single object reference, resolved to the object's ID. */ objectRef(propType: PropertyType): string | undefined; objectRefs(propType: PropertyType): string[]; objectSpaceRefs(propType: PropertyType): string[]; private objectIdOffset; private objectSpaceIdOffset; /** A property containing an array of property sets (e.g. note tags, text runs). */ propertyValues(propType: PropertyType): { propertyId: number; propertySets: RawPropertySet[]; } | undefined; /** * Create a sub-object for a property set (used for text runs, note tags, etc). * The sub-object inherits the context, file data and ID mapping but has the * given property set and a slice of the parent's object ID stream, mirroring * the Rust `parse_object` implementation. */ subObject(parentPropType: PropertyType, propertyId: number, props: RawPropertySet): ObjectProps; } export { toHex, fromHex };