import type { IKVFactory, IKVStore } from './ikv-store.js';
import type { IObjectStore } from './iobject-store.js';
export declare abstract class ObjectStore<TKeyObject, TValue> implements IObjectStore<TKeyObject, TValue> {
    protected abstract useCaseName: string | undefined;
    protected store: IKVStore;
    private readonly generateKey;
    private readonly serialize;
    private readonly deserialize;
    private throwIfNotOpened;
    constructor(generateKey: (object: TKeyObject) => string, serialize: (value: TValue) => any, deserialize: (value: any) => TValue);
    open(factory: Pick<IKVFactory, 'open'>): Promise<void>;
    close(): Promise<void>;
    save(object: TKeyObject, value: TValue): Promise<void>;
    load(object: TKeyObject): Promise<TValue>;
    remove(object: TKeyObject): Promise<void>;
}
//# sourceMappingURL=object-store.d.ts.map