import { System } from '../system';
import { Dict } from '../types/Dict';
export interface Entry<T> {
    id: string;
    createdAt: string;
    updatedAt: string;
    data: T;
}
export interface Store<T> {
    get: (id: string) => Promise<T | null>;
    getAll: () => Promise<Dict<T>>;
    add: (id: string, data: T) => Promise<T>;
    addAll: (data: T[]) => Promise<void>;
    put: (id: string, data: T) => Promise<T>;
    delete: (id: string) => Promise<void>;
    clear: () => Promise<any>;
    reset: (data: T[]) => Promise<any>;
}
export declare const SYSTEM_DATABASE_VERSION_KEY = "SYSTEM_DATABASE_VERSION_KEY";
export declare class LocalStore<T> implements Store<T> {
    private _system;
    private _name;
    constructor(system: System, name: string);
    private _db;
    private _store;
    private _promisify_request;
    get(id: string): Promise<T | null>;
    getAll(): Promise<Dict<T>>;
    reset(data: T[]): Promise<any>;
    clear(): Promise<void>;
    private _clear;
    add(id: string, data: T): Promise<T>;
    addAll(data: T[]): Promise<any>;
    private _addAll;
    put(id: string, data: T): Promise<T>;
    delete(id: string): Promise<void>;
}
