/** * IStore - Interface for IndexedDB ObjectStore definitions * * Each entity store implements this interface to define its schema. * Enables Open/Closed Principle: IndexedDBContext works with any IStore. */ export interface IStore { /** * The name of the ObjectStore in IndexedDB */ readonly storeName: string; /** * Create the ObjectStore with its schema (indexes, keyPath, etc.) * Called during database upgrade (onupgradeneeded event) */ create(db: IDBDatabase): void; }