/**
 * @module MailcowClient
 */
import { AxiosRequestConfig } from 'axios';
import { DomainEndpoints } from './endpoints/domain-endpoints';
import { AntiSpamEndpoints } from './endpoints/antispam-endpoints';
import { MailboxEndpoints } from './endpoints/mailbox-endpoint';
import RequestFactory from './request-factory';
import { AliasEndpoints } from './endpoints/alias-endpoints';
import { SyncjobEndpoints } from './endpoints/syncjob-endpoints';
import { ForwardingEndpoints } from './endpoints/forwarding-endpoints';
import { LogEndpoints } from './endpoints/log-endpoints';
import { AdressRewritingEndpoints } from './endpoints/address-rewriting-endpoint';
import { Fail2BanEndpoints } from './endpoints/fail2ban-endpoints';
import { StatusEndpoints } from './endpoints/status-endpoints';
import { ResourceEndpoints } from './endpoints/resource-endpoints';
import { QueueManagerEndpoints } from './endpoints/queue-manager-endpoints';
import { QuarantineEndpoints } from './endpoints/quarantine-endpoints';
import { RatelimitsEndpoints } from './endpoints/ratelimit-endpoints';
import { OAuth2Endpoints } from './endpoints/oauth2-endpoints';
import { AppPasswordEndpoints } from './endpoints/app-password-endpoints';
import { TlsPolicyMapEndpoints } from './endpoints/tls-policy-map-endpoints';
import { DkimEndpoints } from './endpoints/dkim-endpoints';
import { DomainAdminEndpoints } from './endpoints/domain-admin-endpoints';
import { RoutingEndpoints } from './endpoints/routing-endpoints';
/**
 * Class containing all the logic to interface with the Mailcow API in TypeScript.
 * @external
 */
declare class MailcowClient {
    /**
     * The base URL of the Mailcow API.
     * @internal
     */
    readonly BASE_URL: string;
    /**
     * The API key of the Mailcow API.
     * @internal
     */
    readonly API_KEY: string;
    /**
     * The request config used for every request.
     * @internal
     */
    AXIOS_CONFIG: AxiosRequestConfig;
    /**
     * Creates a MailcowClient using the given URL and API key.
     * @param BASE_URL - The base URL of the Mailcow API.
     * @param API_KEY  - The API key of the Mailcow API.
     * @param EXTRA_AXIOS_CONFIG - Allows for setting extra Axios request config such as keep alive.
     */
    constructor(BASE_URL: string, API_KEY: string, EXTRA_AXIOS_CONFIG?: AxiosRequestConfig);
    /**
     * Factory method pattern for creating HTTP requests.
     * @internal
     */
    requestFactory: RequestFactory;
    /**
     * All endpoints related to Aliases.
     * See {@link AliasEndpoints}
     */
    aliases: AliasEndpoints;
    /**
     * All endpoints related to Domains.
     * See {@link DomainEndpoints}
     * @external
     */
    domains: DomainEndpoints;
    /**
     * All endpoints related to spam policies.
     * See {@link AntiSpamEndpoints}
     * @external
     */
    spamPolicy: AntiSpamEndpoints;
    /**
     * All endpoints related to mailboxes.
     * See {@link MailboxEndpoints}
     * @external
     */
    mailbox: MailboxEndpoints;
    /**
     * All endpoints related to sync jobs.
     * See {@link SyncjobEndpoints}
     * @external
     */
    syncjobs: SyncjobEndpoints;
    /**
     * All endpoints related to forwarding hosts.
     * See {@link ForwardingEndpoints}
     * @external
     */
    forwardingHosts: ForwardingEndpoints;
    /**
     * All endpoints related to address rewriting.
     * See {@link AdressRewritingEndpoints}
     * @external
     */
    addressRewriting: AdressRewritingEndpoints;
    /**
     * All endpoints related to logs.
     * See {@link LogEndpoints}
     * @external
     */
    logs: LogEndpoints;
    /**
     * All endpoints related to fail2ban.
     * See {@link Fail2BanEndpoints}
     * @external
     */
    fail2Ban: Fail2BanEndpoints;
    /**
     * All endpoints related to status.
     * See {@link StatusEndpoints}
     * @external
     */
    status: StatusEndpoints;
    /**
     * All endpoints related to resources.
     * See {@link ResourceEndpoints}
     * @external
     */
    resources: ResourceEndpoints;
    /**
     * All endpoints related to the mail queue.
     * See {@link QueueManagerEndpoints}
     * @external
     */
    queueManager: QueueManagerEndpoints;
    /**
     * All endpoints related to quarantine.
     * See {@link QuarantineEndpoints}
     * @external
     */
    quarantine: QuarantineEndpoints;
    /**
     * All endpoints related to rate limits.
     * See {@link RatelimitsEndpoints}
     * @external
     */
    ratelimits: RatelimitsEndpoints;
    /**
     * All endpoints related to OAuth2 clients.
     * See {@link OAuth2Endpoints}
     * @external
     */
    oauth2: OAuth2Endpoints;
    /**
     * All endpoints related to app passwords.
     * See {@link AppPasswordEndpoints}
     * @external
     */
    appPasswords: AppPasswordEndpoints;
    /**
     * All endpoints related to TLS Policy Maps.
     * See {@link TlsPolicyMapEndpoints}
     * @external
     */
    tlsPolicyMaps: TlsPolicyMapEndpoints;
    /**
     * All endpoints related to DKIM.
     * See {@link DkimEndpoints}
     * @external
     */
    dkim: DkimEndpoints;
    /**
     * All endpoints related to Domain Admins.
     * See {@link DomainAdminEndpoints}
     * @external
     */
    domainAdmins: DomainAdminEndpoints;
    /**
     * All endpoints related to Routing.
     * See {@link RoutingEndpoints}
     * @external
     */
    routing: RoutingEndpoints;
}
export default MailcowClient;
