import { Client } from '../client.js';
import { Models } from '../models.js';
import { Name } from '../enums/name.js';
import '../query.js';
import '../enums/database-type.js';
import '../enums/attribute-status.js';
import '../enums/column-status.js';
import '../enums/index-status.js';
import '../enums/deployment-status.js';
import '../enums/execution-trigger.js';
import '../enums/execution-status.js';
import '../enums/health-antivirus-status.js';
import '../enums/health-check-status.js';
import '../enums/message-status.js';

declare class Health {
    client: Client;
    constructor(client: Client);
    /**
     * Check the Appwrite HTTP server is up and responsive.
     *
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthStatus>}
     */
    get(): Promise<Models.HealthStatus>;
    /**
     * Check the Appwrite Antivirus server is up and connection is successful.
     *
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthAntivirus>}
     */
    getAntivirus(): Promise<Models.HealthAntivirus>;
    /**
     * Check the Appwrite in-memory cache servers are up and connection is successful.
     *
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthStatus>}
     */
    getCache(): Promise<Models.HealthStatus>;
    /**
     * Get the SSL certificate for a domain
     *
     * @param {string} params.domain - string
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthCertificate>}
     */
    getCertificate(params?: {
        domain?: string;
    }): Promise<Models.HealthCertificate>;
    /**
     * Get the SSL certificate for a domain
     *
     * @param {string} domain - string
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthCertificate>}
     * @deprecated Use the object parameter style method for a better developer experience.
     */
    getCertificate(domain?: string): Promise<Models.HealthCertificate>;
    /**
     * Check the Appwrite database servers are up and connection is successful.
     *
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthStatus>}
     */
    getDB(): Promise<Models.HealthStatus>;
    /**
     * Check the Appwrite pub-sub servers are up and connection is successful.
     *
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthStatus>}
     */
    getPubSub(): Promise<Models.HealthStatus>;
    /**
     * Get the number of builds that are waiting to be processed in the Appwrite internal queue server.
     *
     * @param {number} params.threshold - Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthQueue>}
     */
    getQueueBuilds(params?: {
        threshold?: number;
    }): Promise<Models.HealthQueue>;
    /**
     * Get the number of builds that are waiting to be processed in the Appwrite internal queue server.
     *
     * @param {number} threshold - Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthQueue>}
     * @deprecated Use the object parameter style method for a better developer experience.
     */
    getQueueBuilds(threshold?: number): Promise<Models.HealthQueue>;
    /**
     * Get the number of certificates that are waiting to be issued against [Letsencrypt](https://letsencrypt.org/) in the Appwrite internal queue server.
     *
     * @param {number} params.threshold - Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthQueue>}
     */
    getQueueCertificates(params?: {
        threshold?: number;
    }): Promise<Models.HealthQueue>;
    /**
     * Get the number of certificates that are waiting to be issued against [Letsencrypt](https://letsencrypt.org/) in the Appwrite internal queue server.
     *
     * @param {number} threshold - Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthQueue>}
     * @deprecated Use the object parameter style method for a better developer experience.
     */
    getQueueCertificates(threshold?: number): Promise<Models.HealthQueue>;
    /**
     * Get the number of database changes that are waiting to be processed in the Appwrite internal queue server.
     *
     * @param {string} params.name - Queue name for which to check the queue size
     * @param {number} params.threshold - Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthQueue>}
     */
    getQueueDatabases(params?: {
        name?: string;
        threshold?: number;
    }): Promise<Models.HealthQueue>;
    /**
     * Get the number of database changes that are waiting to be processed in the Appwrite internal queue server.
     *
     * @param {string} name - Queue name for which to check the queue size
     * @param {number} threshold - Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthQueue>}
     * @deprecated Use the object parameter style method for a better developer experience.
     */
    getQueueDatabases(name?: string, threshold?: number): Promise<Models.HealthQueue>;
    /**
     * Get the number of background destructive changes that are waiting to be processed in the Appwrite internal queue server.
     *
     * @param {number} params.threshold - Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthQueue>}
     */
    getQueueDeletes(params?: {
        threshold?: number;
    }): Promise<Models.HealthQueue>;
    /**
     * Get the number of background destructive changes that are waiting to be processed in the Appwrite internal queue server.
     *
     * @param {number} threshold - Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthQueue>}
     * @deprecated Use the object parameter style method for a better developer experience.
     */
    getQueueDeletes(threshold?: number): Promise<Models.HealthQueue>;
    /**
     * Returns the amount of failed jobs in a given queue.
     *
     *
     * @param {Name} params.name - The name of the queue
     * @param {number} params.threshold - Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthQueue>}
     */
    getFailedJobs(params: {
        name: Name;
        threshold?: number;
    }): Promise<Models.HealthQueue>;
    /**
     * Returns the amount of failed jobs in a given queue.
     *
     *
     * @param {Name} name - The name of the queue
     * @param {number} threshold - Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthQueue>}
     * @deprecated Use the object parameter style method for a better developer experience.
     */
    getFailedJobs(name: Name, threshold?: number): Promise<Models.HealthQueue>;
    /**
     * Get the number of function executions that are waiting to be processed in the Appwrite internal queue server.
     *
     * @param {number} params.threshold - Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthQueue>}
     */
    getQueueFunctions(params?: {
        threshold?: number;
    }): Promise<Models.HealthQueue>;
    /**
     * Get the number of function executions that are waiting to be processed in the Appwrite internal queue server.
     *
     * @param {number} threshold - Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthQueue>}
     * @deprecated Use the object parameter style method for a better developer experience.
     */
    getQueueFunctions(threshold?: number): Promise<Models.HealthQueue>;
    /**
     * Get the number of logs that are waiting to be processed in the Appwrite internal queue server.
     *
     * @param {number} params.threshold - Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthQueue>}
     */
    getQueueLogs(params?: {
        threshold?: number;
    }): Promise<Models.HealthQueue>;
    /**
     * Get the number of logs that are waiting to be processed in the Appwrite internal queue server.
     *
     * @param {number} threshold - Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthQueue>}
     * @deprecated Use the object parameter style method for a better developer experience.
     */
    getQueueLogs(threshold?: number): Promise<Models.HealthQueue>;
    /**
     * Get the number of mails that are waiting to be processed in the Appwrite internal queue server.
     *
     * @param {number} params.threshold - Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthQueue>}
     */
    getQueueMails(params?: {
        threshold?: number;
    }): Promise<Models.HealthQueue>;
    /**
     * Get the number of mails that are waiting to be processed in the Appwrite internal queue server.
     *
     * @param {number} threshold - Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthQueue>}
     * @deprecated Use the object parameter style method for a better developer experience.
     */
    getQueueMails(threshold?: number): Promise<Models.HealthQueue>;
    /**
     * Get the number of messages that are waiting to be processed in the Appwrite internal queue server.
     *
     * @param {number} params.threshold - Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthQueue>}
     */
    getQueueMessaging(params?: {
        threshold?: number;
    }): Promise<Models.HealthQueue>;
    /**
     * Get the number of messages that are waiting to be processed in the Appwrite internal queue server.
     *
     * @param {number} threshold - Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthQueue>}
     * @deprecated Use the object parameter style method for a better developer experience.
     */
    getQueueMessaging(threshold?: number): Promise<Models.HealthQueue>;
    /**
     * Get the number of migrations that are waiting to be processed in the Appwrite internal queue server.
     *
     * @param {number} params.threshold - Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthQueue>}
     */
    getQueueMigrations(params?: {
        threshold?: number;
    }): Promise<Models.HealthQueue>;
    /**
     * Get the number of migrations that are waiting to be processed in the Appwrite internal queue server.
     *
     * @param {number} threshold - Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthQueue>}
     * @deprecated Use the object parameter style method for a better developer experience.
     */
    getQueueMigrations(threshold?: number): Promise<Models.HealthQueue>;
    /**
     * Get the number of metrics that are waiting to be processed in the Appwrite stats resources queue.
     *
     * @param {number} params.threshold - Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthQueue>}
     */
    getQueueStatsResources(params?: {
        threshold?: number;
    }): Promise<Models.HealthQueue>;
    /**
     * Get the number of metrics that are waiting to be processed in the Appwrite stats resources queue.
     *
     * @param {number} threshold - Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthQueue>}
     * @deprecated Use the object parameter style method for a better developer experience.
     */
    getQueueStatsResources(threshold?: number): Promise<Models.HealthQueue>;
    /**
     * Get the number of metrics that are waiting to be processed in the Appwrite internal queue server.
     *
     * @param {number} params.threshold - Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthQueue>}
     */
    getQueueUsage(params?: {
        threshold?: number;
    }): Promise<Models.HealthQueue>;
    /**
     * Get the number of metrics that are waiting to be processed in the Appwrite internal queue server.
     *
     * @param {number} threshold - Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthQueue>}
     * @deprecated Use the object parameter style method for a better developer experience.
     */
    getQueueUsage(threshold?: number): Promise<Models.HealthQueue>;
    /**
     * Get the number of webhooks that are waiting to be processed in the Appwrite internal queue server.
     *
     * @param {number} params.threshold - Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthQueue>}
     */
    getQueueWebhooks(params?: {
        threshold?: number;
    }): Promise<Models.HealthQueue>;
    /**
     * Get the number of webhooks that are waiting to be processed in the Appwrite internal queue server.
     *
     * @param {number} threshold - Queue size threshold. When hit (equal or higher), endpoint returns server error. Default value is 5000.
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthQueue>}
     * @deprecated Use the object parameter style method for a better developer experience.
     */
    getQueueWebhooks(threshold?: number): Promise<Models.HealthQueue>;
    /**
     * Check the Appwrite storage device is up and connection is successful.
     *
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthStatus>}
     */
    getStorage(): Promise<Models.HealthStatus>;
    /**
     * Check the Appwrite local storage device is up and connection is successful.
     *
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthStatus>}
     */
    getStorageLocal(): Promise<Models.HealthStatus>;
    /**
     * Check the Appwrite server time is synced with Google remote NTP server. We use this technology to smoothly handle leap seconds with no disruptive events. The [Network Time Protocol](https://en.wikipedia.org/wiki/Network_Time_Protocol) (NTP) is used by hundreds of millions of computers and devices to synchronize their clocks over the Internet. If your computer sets its own clock, it likely uses NTP.
     *
     * @throws {AppwriteException}
     * @returns {Promise<Models.HealthTime>}
     */
    getTime(): Promise<Models.HealthTime>;
}

export { Health };
