export type KV = { key: string; value: any; }; /** * An interface to any simple key-value store. */ export interface KVStore { /** * Deletes the value associated with a given key. */ del(key: string): Promise<void>; /** * Deletes all keys that start with a specific prefix. */ deletePrefix(prefix: string): Promise<void>; /** * Deletes all keys in the store. */ deleteAll(): Promise<void>; /** * Sets the value for a given key. */ set(key: string, value: any): Promise<void>; /** * Sets the values for a list of key-value pairs. */ batchSet(kvs: KV[]): Promise<void>; /** * Deletes a list of keys. */ batchDelete(keys: string[]): Promise<void>; /** * Gets the values for a list of keys. */ batchGet(keys: string[]): Promise<(any | undefined)[]>; /** * Gets the value for a given key. */ get(key: string): Promise<any | null>; /** * Checks whether a given key exists in the store. */ has(key: string): Promise<boolean>; /** * Gets all key-value pairs where the key starts with a specific prefix. */ queryPrefix(keyPrefix: string): Promise<{ key: string; value: any }[]>; }