import { PSTObject } from './PSTObject.class.js'; import type { PLNode } from './PLNode.js'; import { type PropertyFinder } from './PAUtil.js'; import { PSTMessage } from './PSTMessage.class.js'; import type { PLSubNode } from './PLSubNode.js'; import type { RootProvider } from './RootProvider.js'; import type { FasterEmail } from './FasterEmail.js'; import { type PUNode } from './PUNode.js'; import type { IPSTFolder } from './IPSTFolder.js'; export interface GetFasterEmailListOptions { progress?: (current: number, count: number) => void; } /** * Represents a folder in the PST File. Allows you to access child folders or items. * Items are accessed through a sort of cursor arrangement. This allows for * incremental reading of a folder which may have _lots_ of emails. */ export declare class PSTFolder extends PSTObject implements IPSTFolder { private _subFoldersProvider; private _emailsProvider; /** * Creates an instance of PSTFolder. * Represents a folder in the PST File. Allows you to access child folders or items. * Items are accessed through a sort of cursor arrangement. This allows for * incremental reading of a folder which may have _lots_ of emails. * @internal * @param {PSTFile} rootProvider * @param {DescriptorIndexNode} descriptorIndexNode * @param {Map} [localDescriptorItems] */ constructor(rootProvider: RootProvider, node: PLNode, subNode: PLSubNode, propertyFinder: PropertyFinder); private getEmailsProvider; private getSubFoldersProvider; /** * Get folders in one fell swoop, since there's not usually thousands of them. * @returns {PSTFolder[]} */ getSubFolders(): Promise; getSubFolder(index: number): Promise; /** * The number of child folders in this folder * @readonly * @type {number} */ getSubFolderCount(): Promise; /** * Number of emails in this folder * @readonly * @type {number} */ getEmailCount(): Promise; getEmail(index: number): Promise; getEmails(): Promise; getFasterEmailList(options?: GetFasterEmailListOptions): Promise; /** * Contains a constant that indicates the folder type. * https://msdn.microsoft.com/en-us/library/office/cc815373.aspx * @readonly * @type {number} */ get folderType(): number; /** * Contains the number of messages in a folder, as computed by the message store. * For a number calculated by the library use getEmailCount * @readonly * @type {number} */ get contentCount(): number; /** * Contains the number of unread messages in a folder, as computed by the message store. * https://msdn.microsoft.com/en-us/library/office/cc841964.aspx * @readonly * @type {number} */ get unreadCount(): number; /** * Contains TRUE if a folder contains subfolders. * once again, read from the PST, use getSubFolderCount if you want to know * @readonly * @type {boolean} */ get hasSubfolders(): boolean; /** * Contains a text string describing the type of a folder. Although this property is * generally ignored, versions of Microsoft® Exchange Server prior to Exchange Server * 2003 Mailbox Manager expect this property to be present. * https://msdn.microsoft.com/en-us/library/office/cc839839.aspx * @readonly * @type {string} */ get containerClass(): string; /** * Contains a bitmask of flags describing capabilities of an address book container. * https://msdn.microsoft.com/en-us/library/office/cc839610.aspx * @readonly * @type {number} */ get containerFlags(): number; /** * Requests access to the user node of the internal PST structure. */ requestAccessToUserNode(): Promise; /** * JSON stringify the object properties. * @returns {string} */ toJSON(): any; }