import { Client } from 'discord.js';
import { ClientUtil } from './ClientUtil.js';
import { CLIENT_MODE } from '../constants/constants.js';
import type { Snowflake, ClientOptions } from 'discord.js';
import type { ShewenyClientOptions, Managers, ManagersCollections, Cooldowns } from '../typescript/index.js';
/**
 * Sheweny framework client
 */
export declare class ShewenyClient extends Client {
    /**
     * The ID of the bot admins
     * @type {Snowflake[]}
     */
    admins: Snowflake[];
    /**
     * The collections of handlers
     * @type {ManagersCollections}
     */
    readonly collections: ManagersCollections;
    /**
     * The cooldowns of the client
     * @type {Cooldowns}
     */
    readonly cooldowns: Cooldowns;
    /**
     * If the client is ready
     * @type {boolean}
     */
    connected: boolean;
    /**
     * If the cooldown should be desactivated for admins
     * @type {boolean}
     */
    disableCooldownsForAdmins: boolean;
    /**
     * If the client joins threads when created
     * @type {boolean}
     */
    joinThreadsOnCreate: boolean;
    /**
     * The mode of the application (developement or production)
     * @type {string}
     */
    mode?: typeof CLIENT_MODE.prod | typeof CLIENT_MODE.dev;
    /**
     * The manager of client
     * @type {Managers}
     */
    readonly managers: Managers;
    /**
     * A util tool to resolve and get informations
     * @type {ClientUtil}
     */
    readonly util: ClientUtil;
    /**
     * Set options and your client is ready
     * @param {ShewenyClientOptions} [options] Client framework options
     * @param {ClientOptions} [clientOptions] Client discord.js options
     */
    constructor(options: ShewenyClientOptions, clientOptions?: ClientOptions);
    /**
     * Return true when the client is ready
     * @returns {Promise<boolean>}
     */
    awaitReady(): Promise<boolean>;
}
