export interface StorageService {
  get<T>(namespace: string, key: string): Promise<T | null>;
  set<T>(namespace: string, key: string, value: T): Promise<void>;
  delete(namespace: string, key: string): Promise<void>;
  list(namespace: string): Promise<string[]>;
  query<T>(namespace: string, predicate: (item: T) => boolean): Promise<T[]>;
  clear(namespace: string): Promise<void>;
  export(
    namespace: string,
    options?: { lightweight?: boolean },
  ): Promise<Record<string, unknown>>;
  import(namespace: string, data: Record<string, unknown>): Promise<void>;
}
