import { Transaction, TransactionManager } from './Transaction';
export interface BaseDto {
    id?: string;
}
export interface DtoClass {
    new (...args: any[]): BaseDto;
    get dbName(): string;
}
export declare class ObjectStore<T extends BaseDto> {
    storeName: string;
    private db;
    private transactionManager;
    constructor(objectStoreName: string, transactionManager: TransactionManager);
    private _addDb;
    /**
     * Adds an object to the database and overwrites the id property with a new one.
     * @param object the object to be inserted
     * @returns the update with the updated id
     */
    add(object: T, transaction?: Transaction): Promise<T>;
    private _updateDb;
    update(object: T, transaction?: Transaction): Promise<T>;
    private _deleteDb;
    delete(object: T | string, transaction?: Transaction): Promise<T>;
    get(id: string, transaction?: Transaction): Promise<T | undefined>;
    getAll(query?: IDBKeyRange | IDBValidKey, transaction?: Transaction): Promise<T[]>;
}
//# sourceMappingURL=DBAccess.d.ts.map