import type { ImapFlow } from '../imap-flow.js'; import type { MailboxObject, MailboxOpenOptions } from '../types.js'; /** * Options for SELECT/EXAMINE: the public open options plus the QRESYNC resynchronization * parameters, which are only honored when the QRESYNC extension has been enabled */ export interface SelectOptions extends MailboxOpenOptions { /** QRESYNC modseq value to fetch changes since */ changedSince?: bigint | number | string | undefined; /** QRESYNC UID validity value */ uidValidity?: bigint | number | string | undefined; } /** * Selects or examines a mailbox, making it the current mailbox for subsequent operations. * * @param connection - IMAP connection instance * @param path - Mailbox path to select * @param options - Select options * @param options.readOnly - If true, use EXAMINE instead of SELECT (read-only access) * @param options.changedSince - QRESYNC modseq value to fetch changes since * @param options.uidValidity - QRESYNC UID validity value * @returns Mailbox info object with path, flags, exists, uidNext, uidValidity, highestModseq, etc., or undefined if preconditions not met * @throws If the SELECT/EXAMINE command fails */ export default function select(connection: ImapFlow, pathInput: string | string[], options?: SelectOptions | undefined): Promise;