import { SmartdataDb } from './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, smartdataDbRefArg: SmartdataDb);
    private easyStorePromise?;
    private getEasyStore;
    /**
     * reads all keyValue pairs at once and returns them
     */
    readAll(): Promise<Partial<T>>;
    /**
     * reads a keyValueFile from disk
     */
    readKey<TKey extends keyof T>(keyArg: TKey): Promise<Partial<T>[TKey]>;
    /**
     * 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>;
    /**
     * merges all keyValue pairs from the object argument into the store.
     * Existing keys that are not present in `keyValueObject` are preserved.
     * To overwrite the entire store and drop missing keys, use `replace()`.
     */
    writeAll(keyValueObject: Partial<T>): Promise<void>;
    /**
     * atomically replaces the entire store with the given object.
     * Unlike `writeAll` (which merges), `replace` clears any keys not
     * present in `keyValueObject`. Useful when you need to drop a key.
     */
    replace(keyValueObject: Partial<T>): Promise<void>;
    /**
     * wipes a key value store from disk
     */
    wipe(): Promise<void>;
    cleanUpEphemeral(): Promise<void>;
}
