/// <reference types="node" />
import { WildduckClientComponent } from "../../client-component";
import { IWildduckApiDeleteMessagesInMailboxResponse, IWildduckApiForwardStoredMessageRequest, IWildduckApiForwardStoredMessageResponse, IWildduckApiGetMessageResponse, IWildduckApiGetMessagesResponse, IWildduckApiSearchMessagesResponse, IWildduckApiSubmitStoredMessageRequest, IWildduckApiSubmitStoredMessageResponse, IWildduckApiSuccessResponse, IWildduckApiUpdateMessageRequest, IWildduckApiUpdateMessageResponse, IWildduckApiUploadMessageRequest, IWildduckApiUploadMessageResponse } from "../../client-schema";
import { IWildduckApiDeleteMessagesInMailboxOptions, IWildduckApiGetMessageOptions, IWildduckApiGetMessagesOptions, IWildduckApiSearchMessagesOptions } from "./messages.interface";
export declare class WildduckMessagesService extends WildduckClientComponent {
    deleteMessage(user: string, mailbox: string, message: number): Promise<IWildduckApiSuccessResponse>;
    getMessage(user: string, mailbox: string, message: number, options?: Partial<IWildduckApiGetMessageOptions>): Promise<IWildduckApiGetMessageResponse>;
    deleteMessagesInMailbox(user: string, mailbox: string, options?: Partial<IWildduckApiDeleteMessagesInMailboxOptions>): Promise<IWildduckApiDeleteMessagesInMailboxResponse>;
    getMessagesInMailbox(user: string, mailbox: string, options?: Partial<IWildduckApiGetMessagesOptions>): Promise<IWildduckApiGetMessagesResponse>;
    updateMessage(user: string, mailbox: string, dto: IWildduckApiUpdateMessageRequest): Promise<IWildduckApiUpdateMessageResponse>;
    uploadMessage(user: string, mailbox: string, dto: IWildduckApiUploadMessageRequest): Promise<IWildduckApiUploadMessageResponse>;
    forwardMessage(user: string, mailbox: string, message: string, dto: IWildduckApiForwardStoredMessageRequest): Promise<IWildduckApiForwardStoredMessageResponse>;
    downloadAttachment(user: string, mailbox: string, message: string, attachment: string): Promise<Buffer>;
    getMessageSource(user: string, mailbox: string, message: string): Promise<string>;
    deleteOutboundMessage(user: string, queueId: string): Promise<IWildduckApiSuccessResponse>;
    searchMessages(user: string, options?: Partial<IWildduckApiSearchMessagesOptions>): Promise<IWildduckApiSearchMessagesResponse>;
    searchAndUpdateMessages(user: string, dto: any, options?: Partial<IWildduckApiSearchMessagesOptions>): Promise<any>;
    submitDraftForDelivery(user: string, mailbox: string, message: string, dto: IWildduckApiSubmitStoredMessageRequest): Promise<IWildduckApiSubmitStoredMessageResponse>;
}
