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 A promise that resolves to an array of Buffers (if asArray is true) or a single concatenated Buffer.
 */
declare function compiler(response: ImapCompileInput, options: CompilerOptions & {
    asArray: true;
}): Promise<Buffer[]>;
declare function compiler(response: ImapCompileInput, options?: (CompilerOptions & {
    asArray?: false | undefined;
}) | undefined): Promise<Buffer>;
declare function compiler(response: ImapCompileInput, options?: CompilerOptions | undefined): Promise<Buffer | Buffer[]>;
export default compiler;
