import { SmartdataDb } from './smartdata.classes.db.js';
/**
 * EasyStore allows the storage of easy objects. It also allows easy sharing of the object between different instances
 */
export declare class EasyStore<T> {
    smartdataDbRef: SmartdataDb;
    nameId: string;
    private easyStoreClass;
    constructor(nameIdArg: string, smnartdataDbRefArg: SmartdataDb);
    private easyStorePromise;
    private getEasyStore;
    /**
     * reads all keyValue pairs at once and returns them
     */
    readAll(): Promise<Partial<T>>;
    /**
     * reads a keyValueFile from disk
     */
    readKey(keyArg: keyof T): Promise<Partial<T>[keyof T]>;
    /**
     * writes a specific key to the keyValueStore
     */
    writeKey<TKey extends keyof T>(keyArg: TKey, valueArg: T[TKey]): Promise<void>;
    deleteKey(keyArg: keyof T): Promise<void>;
    /**
     * writes all keyValue pairs in the object argument
     */
    writeAll(keyValueObject: Partial<T>): Promise<void>;
    /**
     * wipes a key value store from disk
     */
    wipe(): Promise<void>;
    cleanUpEphermal(): Promise<void>;
}
