import { Base } from './Base';
import type { ChatBot } from './ChatBot';
import type { ChatRoom } from './ChatRoom';
import { AutoModSettingsManager } from './managers';
import type { EventSubConnection } from '../enums';
/**
 * Represents the automod of a chatroom.
 */
export declare class AutoMod<T extends EventSubConnection> extends Base<T> {
    /**
     * The chatroom where the automod is.
     */
    readonly chatroom: ChatRoom<T>;
    /**
     * The settings manager of the automod.
     */
    readonly settings: AutoModSettingsManager<T>;
    /**
     * Creates a new instance of the automod.
     * @param chatbot The current instance of the chatbot.
     * @param chatroom The chatroom where the automod is.
     */
    constructor(chatbot: ChatBot<T>, chatroom: ChatRoom<T>);
    /**
     * Sets the overall level of the automod. This setting will overwrite all the others.
     * @param level The overall level of the automod. If null, it will be set to 0.
     * @returns The new settings of the automod.
     */
    setOverall(level: number | null): Promise<import("./AutoModSettings").AutoModSettings<T>>;
    /**
     * Sets the disability level of the automod. This settings will disable the overall level.
     * @param level The disability level of the automod. If null, it will be set to 0.
     * @returns The new settings of the automod.
     */
    setDisability(level: number | null): Promise<import("./AutoModSettings").AutoModSettings<T>>;
    /**
     * Sets the aggression level of the automod. This settings will disable the overall level.
     * @param level The aggression level of the automod. If null, it will be set to 0.
     * @returns The new settings of the automod.
     */
    setAggression(level: number | null): Promise<import("./AutoModSettings").AutoModSettings<T>>;
    /**
     * Sets the sexuality level of the automod. This settings will disable the overall level.
     * @param level The sexuality level of the automod. If null, it will be set to 0.
     * @returns The new settings of the automod.
     */
    setSexuality(level: number | null): Promise<import("./AutoModSettings").AutoModSettings<T>>;
    /**
     * Sets the misogyny level of the automod. This settings will disable the overall level.
     * @param level The misogyny level of the automod. If null, it will be set to 0.
     * @returns The new settings of the automod.
     */
    setMisogyny(level: number | null): Promise<import("./AutoModSettings").AutoModSettings<T>>;
    /**
     * Sets the bullying level of the automod. This settings will disable the overall level.
     * @param level The bullying level of the automod. If null, it will be set to 0.
     * @returns The new settings of the automod.
     */
    setBullying(level: number | null): Promise<import("./AutoModSettings").AutoModSettings<T>>;
    /**
     * Sets the harassment level of the automod. This settings will disable the overall level.
     * @param level The harassment level of the automod. If null, it will be set to 0.
     * @returns The new settings of the automod.
     */
    setSwearing(level: number | null): Promise<import("./AutoModSettings").AutoModSettings<T>>;
    /**
     * Sets the racism level of the automod. This settings will disable the overall level.
     * @param level The racism level of the automod. If null, it will be set to 0.
     * @returns The new settings of the automod.
     */
    setRacism(level: number | null): Promise<import("./AutoModSettings").AutoModSettings<T>>;
    /**
     * Sets the level of sex based terms of the automod. This settings will disable the overall level.
     * @param level The level of sex based terms of the automod. If null, it will be set to 0.
     * @returns The new settings of the automod.
     */
    setSexBasedTerms(level: number | null): Promise<import("./AutoModSettings").AutoModSettings<T>>;
}
