import type { CompilerOptions, ImapCompileInput } from './types.js'; /** * Compiles an input object into a sequence of Buffers representing an IMAP protocol response string. * Handles various node types including literals, strings, atoms, sections, sequences, and nested lists. * * @param response - The response object to compile. * @param response.tag - The IMAP command tag (e.g., "*" or a sequence number). * @param response.command - The IMAP command name. * @param response.attributes - The response attributes to compile into IMAP format. * @param options - Compilation options. * @param options.asArray - If true, returns an array of Buffers (one per literal segment); otherwise returns a single concatenated Buffer. * @param options.isLogging - If true, redacts sensitive values and truncates long strings/literals for logging purposes. * @param options.literalPlus - If true, uses the LITERAL+ extension (appends "+" to literal length markers). * @param options.literalMinus - If true, uses the LITERAL- extension for literals up to 4096 bytes. * @returns An array of Buffers (if asArray is true) or a single concatenated Buffer. */ declare function compiler(response: ImapCompileInput, options: CompilerOptions & { asArray: true; }): Buffer[]; declare function compiler(response: ImapCompileInput, options?: (CompilerOptions & { asArray?: false | undefined; }) | undefined): Buffer; declare function compiler(response: ImapCompileInput, options?: CompilerOptions | undefined): Buffer | Buffer[]; export default compiler;