import { GuildStorage } from '../types/GuildStorage'; import { StorageProvider } from './StorageProvider'; import { Client } from '../client/Client'; import { ClientStorage } from '../types/ClientStorage'; /** * Used for creating the different storage class mixins used throughout * and needed by YAMDBF Clients. Used internally, shouldn't ever * need to be used directly in a custom client * @private * @class StorageFactory * @param {Client} client The YAMDBF Client instance * @param {StorageProvider} guildDataStorage StorageProvider instance that provides all guild data * @param {StorageProvider} guildSettingStorage StorageProvider instance that provides all guild settings */ export declare class StorageFactory { private readonly _client; private readonly _guildDataStorage; private readonly _guildSettingStorage; constructor(client: Client, guildDataStorage: StorageProvider, guildSettingStorage: StorageProvider); /** * Creates a GuildStorage mixin, creating the GuildSettings instance under `.settings` * @param {string} id ID of the Guild to create storage for * @returns {Promise} */ createGuildStorage(id: string): Promise; /** * Creates a ClientStorage mixin using KeyedStorage as a base. Adds a `guilds` Collection * that will map Guild IDs to GuildStorages * @returns {ClientStorage} */ createClientStorage(): ClientStorage; }