// This file was generated automatically!
// I'm not responsible for the quality of this code!

// The module is made in TypeScript.
// See the source code here:
// https://github.com/shadowplay1/discord-leveling-super

// Thanks!

import { LevelingOptions } from '../../typings/interfaces/LevelingOptions';
/**
 * Database manager methods class.
 */
declare class DatabaseManager {
    /**
     * Dor Parser.
     * @type {DotParser}
     * @private
     */
    private parser;
    /**
     * Fetch Manager.
     * @type {FetchManager}
     * @private
     */
    private fetcher;
    /**
     * Database manager methods class.
     * @param {LevelingOptions} options Leveling options object.
     */
    constructor(options?: LevelingOptions);
    /**
     * Gets a list of keys in database.
     * @param {string} key The key in database.
     * @returns {string[]} An array with all keys in database or 'null' if nothing found.
     */
    keyList(key: string): string[];
    /**
     * Sets data in a property in database.
     * @param {string} key The key in database.
     * @param {any} value Any data to set in property.
     * @returns {boolean} If set successfully: true; else: false
     */
    set(key: string, value: any): boolean;
    /**
     * Adds a number to a property data in database.
     * @param {string} key The key in database.
     * @param {number} value Any number to add.
     * @returns {boolean} If added successfully: true; else: false
     */
    add(key: string, value: number): boolean;
    /**
     * Subtracts a number from a property data in database.
     * @param {string} key The key in database.
     * @param {number} value Any number to subtract.
     * @returns {boolean} If set successfully: true; else: false
     */
    subtract(key: string, value: number): boolean;
    /**
     * Fetches the data from the storage file.
     * @param {string} key The key in database.
     * @returns {any | false} Value from the specified key or 'false' if failed to read or 'null' if nothing found.
     */
    fetch(key: string): any | false;
    /**
     * Removes the property from the existing object in database.
     * @param {string} key The key in database.
     * @returns {boolean} If cleared: true; else: false.
     */
    remove(key: string): boolean;
    /**
     * Pushes a value to a specified array from the database.
     * @param {string} key The key in database.
     * @param {any} value The key in database.
     * @returns {boolean} If cleared: true; else: false.
     */
    push(key: string, value: any): boolean;
    /**
     * Removes an element from a specified array in the database.
     * @param {string} key The key in database.
     * @param {number} index The index in the array.
     * @returns {boolean} If cleared: true; else: false.
     */
    removeElement(key: string, index: number): boolean;
    /**
    * Fetches the entire database.
    * @returns {Object} Database contents
    */
    all(): object;
}
export = DatabaseManager;
