import type { InstanceOptions, IOContext, IOResponse } from '@vtex/api'; import { VBase } from '@vtex/api'; interface EntityMetadata { hash: string; } export interface EntityWithMetadata { entity: V | null; metadata: EntityMetadata; } declare abstract class VBaseEntityRepository extends VBase { abstract save(key: string, entity: V, ifMatch?: string): Promise; abstract trySaveIfHashMatches(key: string, hash: string, entity: V): Promise; abstract get(key: string, nullIfNotfound?: boolean): Promise; abstract get(key: string, nullIfNotfound: true): Promise; abstract getRaw(key: string, nullIfNotfound?: boolean): Promise>; abstract getWithMetadata(key: string, nullIfNotFound?: boolean): Promise>; } export declare const vbaseFor: (bucket: string) => new (context: IOContext, options?: InstanceOptions) => VBaseEntityRepository; export {};