import { type TIDBKeyType, type TIDBQueryValue, type TSdkStoreName } from './Storage.types';
export default class Store {
    private readonly name;
    private store;
    private _index;
    constructor(db: IDBDatabase, name: TSdkStoreName);
    set index(index: string);
    private writeRequestPromise;
    private readRequestPromise;
    put(data: any, key?: TIDBKeyType): Promise<TIDBKeyType>;
    /**
     * Fallback for old interface
     * @param data
     * @param key
     */
    add(data: any, key?: string): Promise<TIDBKeyType>;
    delete(key: TIDBKeyType): Promise<void>;
    get<Response, D>(key: TIDBKeyType, defaultValue?: D): Promise<Response | D>;
    getAll<Response>(): Promise<Array<Response>>;
    count(query?: IDBKeyRange): Promise<number>;
    countByIndex(key?: TIDBQueryValue): Promise<number>;
}
