import { EventEmitter } from 'events';
import type { Collection } from 'discord.js';
import type { ShewenyClient } from '../client/Client.js';
import type { BaseManagerOptions } from '../typescript/index.js';
export declare abstract class BaseManager extends EventEmitter {
    /**
     * Directory to load
     * @type {boolean}
     */
    readonly asyncRead: boolean;
    /**
     * Client framework
     * @type {ShewenyClient}
     */
    readonly client: ShewenyClient;
    /**
     * Directory to load
     * @type {string}
     */
    readonly directory: string;
    /**
     * Load all structures in collection
     * @returns {Promise<Collection<K, V[]> | undefined>}
     */
    abstract loadAll(): Promise<Collection<unknown, unknown[]> | undefined>;
    /**
     * Constructor of BaseManager class (extends EventEmitter)
     * @param {ShewenyClient} [client]
     * @param {BaseManagerOptions} [options]
     */
    constructor(client: ShewenyClient, options: BaseManagerOptions);
}
