import type { AsyncAction, Func2, Predict } from '../base'; export interface IStorage { openAsync(name: string, version?: number, onCreateSchema?: AsyncAction): Promise; closeAsync(): Promise; getListAsync(store: string, predict?: Predict): Promise>; getAsync(store: string, id: string): Promise; insertAsync(store: string, data: T): Promise; updateAsync(store: string, data: T): Promise; deleteAsync(store: string, id: string): Promise; batchInsertAsync(store: string, list: Array): Promise; batchUpdateAsync(store: string, list: Array): Promise; batchDeleteAsync(store: string, list: Array): Promise; getByIndexAsync(store: string, index: string, value: string, filter?: Predict): Promise>; getSingleByIndeAsync(store: string, index: string, value: string): Promise; hasByIndexAsync(store: string, index: string, value: string): Promise; deleteByIndexAsync(store: string, index: string, value: string): Promise; reduceByIndexAsync(store: string, index: string, reducer: Func2, initial: TRes): Promise; batchDeleteByIndexAsync(store: string, index: string, predict?: Predict): Promise; }