import { type IDBPDatabase } from "idb";
export default abstract class<T, Key extends string> {
    db: IDBPDatabase;
    name?: string;
    key?: Key;
    version?: number;
    initialValue?: T;
    callback?: (creating: boolean) => void;
    abstract get(): Promise<T>;
    abstract set(val: T): Promise<T>;
    private isBrowser;
    constructor(name: string, key?: Key, version?: number, initialValue?: T, callback?: (creating: boolean) => void);
    store: () => Promise<import("idb").IDBPObjectStore<unknown, ["data"], "data", "readwrite">>;
    index: () => Promise<import("idb").IDBPIndex<unknown, ["data"], "data", "" | Key, "readwrite">>;
    private Initialize;
}
