import Long from 'long'; import type { PropertyFinder } from './PAUtil.js'; import type { PLNode } from './PLNode.js'; import type { PLSubNode } from './PLSubNode.js'; import type { Property } from './Property.js'; import type { RootProvider } from './RootProvider.js'; import type { IPSTObject } from './IPSTObject.js'; export declare abstract class PSTObject implements IPSTObject { protected _rootProvider: RootProvider; protected _node: PLNode; protected _subNode: PLSubNode; protected _propertyFinder: PropertyFinder; /** * Creates an instance of PSTObject, the root class of most PST Items. * @internal */ constructor(rootProvider: RootProvider, node: PLNode, subNode: PLSubNode, propertyFinder: PropertyFinder); /** * Get the node type for the descriptor id. * @param {number} [descriptorIdentifier] * @returns {number} */ protected getNodeType(descriptorIdentifier?: number): number; /** * @protected * @param { number } identifier * @param { number } [defaultValue] * @returns { number } */ protected getIntItem(identifier: number, defaultValue?: number): number; /** * Get a boolean. * @protected * @param {number} identifier * @param {boolean} [defaultValue] * @returns {boolean} */ protected getBooleanItem(identifier: number, defaultValue?: boolean): boolean; /** * Get a double. * @protected * @param {number} identifier * @param {number} [defaultValue] * @returns {number} */ protected getDoubleItem(identifier: number, defaultValue?: number): number; /** * Get a long. * @protected * @param {number} identifier * @param {long} [defaultValue] * @returns {long} */ protected getLongItem(identifier: number, defaultValue?: Long): Long; /** * Get a string. * @protected * @param {number} identifier * @param {number} [stringType] * @param {string} [codepage] * @returns {string} */ protected getStringItem(identifier: number, stringType?: number, codepage?: string): string; /** * Get a date. * @param {number} identifier * @returns {Date} */ protected getDateItem(identifier: number): Date | null; /** * Get a blob. * @protected */ protected getBinaryItem(identifier: number): Uint8Array | null; /** * Get the display name of this object. * https://msdn.microsoft.com/en-us/library/office/cc842383.aspx * @readonly * @type {string} */ get displayName(): string; /** * Try to get specified property from PropertyContext. * * @param key `0x3001` is `PR_DISPLAY_NAME` for example * @returns The found one will be returned. Otherwise `undefined` is returned. */ getProperty(key: number): Property | undefined; /** * Get all properties. * * @returns All properties. */ getAllProperties(): Property[]; /** * Get the primary node ID. */ get primaryNodeId(): number; /** * JSON the object. * @returns {string} */ toJSON(): any; }