import { ACLEditRequest, MailboxDeleteRequest, MailboxEditRequest, MailboxPostRequest, Mailbox, MailcowResponse, PushoverEditRequest, QuarantaineEditRequest, SpamScoreEditRequest } from '../types';
import MailcowClient from '../index';
/**
 * Interface for all Mailbox endpoints.
 */
export interface MailboxEndpoints {
    /**
     * Endpoint for creating a mailbox.
     * @param payload - The creation payload.
     */
    create(payload: MailboxPostRequest): Promise<MailcowResponse>;
    /**
     * Endpoint for deleting a mailbox.
     * @param payload - The deletion payload.
     */
    delete(payload: MailboxDeleteRequest): Promise<MailcowResponse>;
    /**
     * Endpoint for editing a mailbox.
     * @param payload
     */
    edit(payload: MailboxEditRequest): Promise<MailcowResponse>;
    /**
     * Endpoint for getting a mailbox.
     * @param mailbox - The mailbox to get
     */
    get(mailbox: 'all'): Promise<Mailbox[]>;
    get(mailbox: string): Promise<Mailbox[]>;
    /**
     * Endpoint for editing a mailbox's pushover settings.
     * @param payload - The edit payload.
     */
    editPushover(payload: PushoverEditRequest): Promise<MailcowResponse>;
    /**
     * Endpoint for editing a mailbox's quarantine settings.
     * @param payload - The edit payload.
     */
    editQuarantine(payload: QuarantaineEditRequest): Promise<MailcowResponse>;
    /**
     * Endpoint for editing a mailbox's spam score settings.
     * @param payload - The edit payload.
     */
    editSpamScore(payload: SpamScoreEditRequest): Promise<MailcowResponse>;
    /**
     * Endpoint for editing a mailbox's ACL settings.
     * @param payload - The edit payload.
     */
    editUserACL(payload: ACLEditRequest): Promise<MailcowResponse>;
    /**
     * Endpoint fot getting a mailbox's active sieve.
     * @param mailbox - The mailbox to get.
     */
    getActiveUserSieve(mailbox: string): Promise<string[]>;
}
/**
 * Binder function between the MailcowClient class and the MailboxEndpoints
 * @param bind - The MailcowClient to bind.
 * @internal
 */
export declare function mailboxEndpoints(bind: MailcowClient): MailboxEndpoints;
