/// <reference types="node" />
import { MessageBuilderNativeBinding } from "../types";
import { NodeTrustedMailcore2NativeBinding } from '../types/NodeTrustedMailcore2NativeBinding';
import { Attachment } from './Attachment';
import { MessageHeader } from './MessageHeader';
declare let bindings: NodeTrustedMailcore2NativeBinding;
/**
 * MessageBuilder Class
 *
 * @public
 */
declare class MessageBuilder extends bindings.MessageBuilder {
    /**
     * Wrapping object handle
     *
     * @internal
     */
    handle: MessageBuilderNativeBinding;
    constructor();
    /**
     * Message header getter
     *
     *
     * @type {MessageHeader}
     * @memberof MessageBuilder
     */
    get header(): MessageHeader | undefined;
    /**
     * Message header setter
     *
     *
     * @param {MessageHeader}  msgHeader
     * @memberof MessageBuilder
     */
    set header(msgHeader: MessageHeader | undefined);
    /**
     * HTML body getter
     *
     *
     * @type {string}
     * @memberof MessageBuilder
     */
    get htmlBody(): string;
    /**
     * HTML body setter
     *
     *
     * @type {string | Buffer}
     * @memberof MessageBuilder
     */
    set htmlBody(bodyVal: string);
    /**
     * Text body getter
     *
     *
     * @type {string}
     * @memberof MessageBuilder
     */
    get textBody(): string;
    /**
     * Text body setter
     *
     *
     * @type {string}
     * @memberof MessageBuilder
     */
    set textBody(bodyVal: string);
    /**
     * Attachments getter
     *
     *
     * @type {Attachment[]}
     * @memberof MessageBuilder
     */
    get attachments(): Attachment[];
    /**
     * Attachments setter
     *
     *
     * @type {Attachment[]}
     * @memberof MessageBuilder
     */
    set attachments(attaches: Attachment[]);
    /**
     * Method to add attachments
     *
     *
     * @param {Attachment[]} attaches attachments to add
     * @memberof MessageBuilder
     */
    addAttachments(attaches: Attachment[]): void;
    /**
     * Related attachments getter
     *
     *
     * @type {Attachment[]}
     * @memberof MessageBuilder
     */
    get relatedAttachments(): Attachment[];
    /**
     * related Attachments setter
     *
     *
     * @type {Attachment[]}
     * @memberof MessageBuilder
     */
    set relatedAttachments(attaches: Attachment[]);
    /**
     * Method to add related attachments
     *
     *
     * @param {Attachment[]} attaches attachments to add as related to body
     * @memberof MessageBuilder
     */
    addRelatedAttachments(attaches: Attachment[]): void;
    /**
     * Boundary prefix getter
     *
     *
     * @type {string}
     * @memberof MessageBuilder
     */
    get boundaryPrefix(): string;
    /**
     * Boundary prefix setter
     *
     *
     * @type {string}
     * @memberof MessageBuilder
     */
    set boundaryPrefix(prefVal: string);
    /**
     * Builded message data getter
     *
     *
     * @type {Buffer}
     * @memberof MessageBuilder
     */
    get data(): Buffer;
    /**
     * Asynchronous method to get message data
     *
     *
     * @type {Buffer}
     * @memberof MessageBuilder
     */
    getDataAsync(): Promise<Buffer>;
    /**
     * Method to write message data
     *
     *
     * @param {string} fileName file path to save data
     * @memberof MessageBuilder
     */
    Write(fileName: string): void;
    /**
     * Method to write message data asynchronously
     *
     *
     * @param {string} fileName file path to save data
     * @memberof MessageBuilder
     */
    WriteAsync(fileName: string): Promise<void>;
    /**
     * Method to set signature certificate
     *
     *
     * @param {string} certData Signer's certificate blob
     * @param {string} signerMail Signer's mail address (not a very useful parameter)
     * @memberof MessageBuilder
     */
    SetSignerCert(certData: string, signerMail?: string): void;
    /**
     * Method to set recipients certificates array
     *
     *
     * @param {string[]} certData Array of recipients certificate blobs
     * @memberof MessageBuilder
     */
    SetRecipientsCerts(certsData: string[]): void;
    /**
     * Key usage policy getter
     *
     *
     * @type {"kupNone" | "kupCheckKeyEnc" | "kupCheckKeyAgree" | "kupCheckOneOf"}
     * @memberof MessageBuilder
     */
    get keyUsagePolicy(): "kupNone" | "kupCheckKeyEnc" | "kupCheckKeyAgree" | "kupCheckOneOf";
    /**
     * Key usage policy setter
     *
     *
     * @type {"kupNone" | "kupCheckKeyEnc" | "kupCheckKeyAgree" | "kupCheckOneOf"}
     * @memberof MessageBuilder
     */
    set keyUsagePolicy(policyVal: "kupNone" | "kupCheckKeyEnc" | "kupCheckKeyAgree" | "kupCheckOneOf");
    /**
     * Method to read data from memory
     *
     *
     * @param {Buffer | string} data memory buffer to read data
     * @memberof MessageBuilder
     */
    SetTempFolder(tmpFolderPath: string): void;
}
export { MessageBuilder };
//# sourceMappingURL=MessageBuilder.d.ts.map