UNPKG

dexie

Version:

A Minimalistic Wrapper for IndexedDB

528 lines (437 loc) 26.2 kB
// Type definitions for Dexie v2.0.4 // Project: https://github.com/dfahlander/Dexie.js // Definitions by: David Fahlander <http://github.com/dfahlander> declare type IndexableTypePart = string | number | Date | ArrayBuffer | ArrayBufferView | DataView | Array<Array<void>>; declare type IndexableTypeArray = Array<IndexableTypePart>; declare type IndexableTypeArrayReadonly = ReadonlyArray<IndexableTypePart>; export declare type IndexableType = IndexableTypePart | IndexableTypeArrayReadonly; declare type ThenShortcut<T,TResult> = (value: T) => TResult | PromiseLike<TResult>; declare type TransactionMode = 'r' | 'r!' | 'r?' | 'rw' | 'rw!' | 'rw?'; interface ProbablyError { name?: string; stack?: string; message?: string; } // Dexie is actually default exported at the end of this file. // Still, need to keep this explicit export anyway. Needed in order for // Typescript 2.1 to allow extension of the Dexie API. export declare class Dexie { constructor(databaseName: string, options?: { addons?: Array<(db: Dexie) => void>, autoOpen?: boolean, indexedDB?: IDBFactory, IDBKeyRange?: {new(): IDBKeyRange} }); readonly name: string; readonly tables: Dexie.Table<any, any>[]; readonly verno: number; static addons: Array<(db: Dexie) => void>; static version: number; static semVer: string; static currentTransaction: Dexie.Transaction; static waitFor<T> (promise: PromiseLike<T> | T) : Dexie.Promise<T>; static waitFor<T> (promise: PromiseLike<T> | T, timeoutMilliseconds: number) : Dexie.Promise<T>; static getDatabaseNames(): Dexie.Promise<string[]>; static getDatabaseNames<R>(thenShortcut: ThenShortcut<string[],R>): Dexie.Promise<R>; static override<F> (origFunc:F, overridedFactory: (fn:any)=>any) : F; static getByKeyPath(obj: Object, keyPath: string): any; static setByKeyPath(obj: Object, keyPath: string, value: any): void; static delByKeyPath(obj: Object, keyPath: string): void; static shallowClone<T> (obj: T): T; static deepClone<T>(obj: T): T; static asap(fn: Function) : void; static maxKey: Array<Array<void>> | string; static minKey: number; static exists(dbName: string) : Dexie.Promise<boolean>; static delete(dbName: string): Dexie.Promise<void>; static dependencies: { indexedDB: IDBFactory, IDBKeyRange: IDBKeyRange }; static default: Dexie; version(versionNumber: Number): Dexie.Version; on: Dexie.DbEvents; open(): Dexie.Promise<Dexie>; table(tableName: string): Dexie.Table<any, any>; table<T>(tableName: string): Dexie.Table<T, any>; table<T, Key>(tableName: string): Dexie.Table<T, Key>; transaction<U>(mode: TransactionMode, table: Dexie.Table<any, any>, scope: () => PromiseLike<U> | U): Dexie.Promise<U>; transaction<U>(mode: TransactionMode, table: Dexie.Table<any, any>, table2: Dexie.Table<any, any>, scope: () => PromiseLike<U> | U): Dexie.Promise<U>; transaction<U>(mode: TransactionMode, table: Dexie.Table<any, any>, table2: Dexie.Table<any, any>, table3: Dexie.Table<any, any>, scope: () => PromiseLike<U> | U): Dexie.Promise<U>; transaction<U>(mode: TransactionMode, table: Dexie.Table<any, any>, table2: Dexie.Table<any, any>, table3: Dexie.Table<any, any>, table4: Dexie.Table<any,any>, scope: () => PromiseLike<U> | U): Dexie.Promise<U>; transaction<U>(mode: TransactionMode, table: Dexie.Table<any, any>, table2: Dexie.Table<any, any>, table3: Dexie.Table<any, any>, table4: Dexie.Table<any,any>, table5: Dexie.Table<any,any>, scope: () => PromiseLike<U> | U): Dexie.Promise<U>; transaction<U>(mode: TransactionMode, tables: Dexie.Table<any, any>[], scope: () => PromiseLike<U> | U): Dexie.Promise<U>; close(): void; delete(): Dexie.Promise<void>; isOpen(): boolean; hasBeenClosed(): boolean; hasFailed(): boolean; dynamicallyOpened(): boolean; backendDB(): IDBDatabase; vip<U>(scopeFunction: () => U): U; // Make it possible to touch physical class constructors where they reside - as properties on db instance. // For example, checking if (x instanceof db.Table). Can't do (x instanceof Dexie.Table because it's just a virtual interface) Table : new()=>Dexie.Table<any,any>; WhereClause: new()=>Dexie.WhereClause<any,any>; Version: new()=>Dexie.Version; Transaction: new()=>Dexie.Transaction; Collection: new()=>Dexie.Collection<any,any>; } export declare module Dexie { interface Promise<T> { // From Promise<T> in lib.es2015.d.ts and lib.es2015.symbol.wellknown.d.ts but with return type Dexie.Promise<T>: then(onfulfilled?: ((value: T) => T | PromiseLike<T>) | undefined | null, onrejected?: ((reason: any) => T | PromiseLike<T>) | undefined | null): Dexie.Promise<T>; then<TResult>(onfulfilled: ((value: T) => T | PromiseLike<T>) | undefined | null, onrejected: (reason: any) => TResult | PromiseLike<TResult>): Dexie.Promise<T | TResult>; then<TResult>(onfulfilled: (value: T) => TResult | PromiseLike<TResult>, onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): Dexie.Promise<TResult>; then<TResult1, TResult2>(onfulfilled: (value: T) => TResult1 | PromiseLike<TResult1>, onrejected: (reason: any) => TResult2 | PromiseLike<TResult2>): Dexie.Promise<TResult1 | TResult2>; catch(onrejected?: ((reason: any) => T | PromiseLike<T>) | undefined | null): Dexie.Promise<T>; catch<TResult>(onrejected: (reason: any) => TResult | PromiseLike<TResult>): Dexie.Promise<T | TResult>; readonly [Symbol.toStringTag]: "Promise"; // Extended methods provided by Dexie.Promise: /** * Catch errors where error => error.name === errorName. Other errors will remain uncaught. * * @param errorName Name of the type of error to catch such as 'RangeError', 'TypeError', 'DatabaseClosedError', etc. * @param onrejected The callback to execute when the Promise is rejected. * @returns A Promise for the completion of the callback. */ catch<TResult>(errorName: string, onrejected: (reason: Error) => TResult | PromiseLike<TResult>): Dexie.Promise<T | TResult>; /** * Catch errors where error => error.name === errorName. Other errors will remain uncaught. * * @param errorName Name of the type of error to catch such as 'RangeError', 'TypeError', 'DatabaseClosedError', etc. * @param onrejected The callback to execute when the Promise is rejected. * @returns A Promise for the completion of the callback. */ catch(errorName: string, onrejected: (reason: Error) => T | PromiseLike<T>): Dexie.Promise<T>; /** * Catch errors where error => error instanceof errorConstructor. Other errors will remain uncaught. * * @param errorConstructor Type of error to catch such as RangeError, TypeError, etc. * @param onrejected The callback to execute when the Promise is rejected. * @returns A Promise for the completion of the callback. */ catch<TResult,TError>(errorConstructor: {new():TError}, onrejected: (reason: TError) => TResult | PromiseLike<TResult>): Dexie.Promise<T | TResult>; /** * Catch errors where error => error instanceof errorConstructor. Other errors will remain uncaught. * * @param errorConstructor Type of error to catch such as RangeError, TypeError, etc. * @param onrejected The callback to execute when the Promise is rejected. * @returns A Promise for the completion of the callback. */ catch<TError>(errorConstructor: {new():TError}, onrejected: (reason: TError) => T | PromiseLike<T>): Dexie.Promise<T>; /** * Attaches a callback to be executed when promise is settled no matter if it was rejected * or resolved. * * @param onFinally The callback to execute when promise is settled. * @returns A Promise for the completion of the callback. */ finally(onFinally: () => void): Dexie.Promise<T>; /** * Apply a timeout limit for the promise. If timeout is reached before promise is settled, * the returned promise will reject with an Error object where name='TimeoutError'. * * @param milliseconds Number of milliseconds for the timeout. * @returns A Promise that will resolve or reject identically to current Promise, but if timeout is reached, * it will reject with TimeoutError. */ timeout(milliseconds: number): Dexie.Promise<T>; } interface DexiePromiseConstructor { // From lib.es6.d.ts: all<TAll>(values: Iterable<TAll | PromiseLike<TAll>>): Dexie.Promise<TAll[]>; race<T>(values: Iterable<T | PromiseLike<T>>): Dexie.Promise<T>; readonly prototype: Dexie.Promise<any>; new <T>(executor: (resolve: (value?: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void): Dexie.Promise<T>; all<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>, T9 | PromiseLike<T9>, T10 | PromiseLike<T10>]): Dexie.Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>; all<T1, T2, T3, T4, T5, T6, T7, T8, T9>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>, T9 | PromiseLike<T9>]): Dexie.Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>; all<T1, T2, T3, T4, T5, T6, T7, T8>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>]): Dexie.Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>; all<T1, T2, T3, T4, T5, T6, T7>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>]): Dexie.Promise<[T1, T2, T3, T4, T5, T6, T7]>; all<T1, T2, T3, T4, T5, T6>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>]): Dexie.Promise<[T1, T2, T3, T4, T5, T6]>; all<T1, T2, T3, T4, T5>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>, T5 | PromiseLike<T5>]): Dexie.Promise<[T1, T2, T3, T4, T5]>; all<T1, T2, T3, T4>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike <T4>]): Dexie.Promise<[T1, T2, T3, T4]>; all<T1, T2, T3>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>]): Dexie.Promise<[T1, T2, T3]>; all<T1, T2>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>]): Dexie.Promise<[T1, T2]>; all<T>(values: (T | PromiseLike<T>)[]): Dexie.Promise<T[]>; reject(reason: any): Dexie.Promise<never>; reject<T>(reason: any): Dexie.Promise<T>; resolve<T>(value: T | PromiseLike<T>): Dexie.Promise<T>; resolve(): Dexie.Promise<void>; } var Promise: DexiePromiseConstructor; interface Version { stores(schema: { [key: string]: string | null }): Version; upgrade(fn: (trans: Transaction) => void): Version; } interface Transaction { active: boolean; db: Dexie; mode: string; idbtrans: IDBTransaction; tables: { [type: string]: Table<any, any> }; storeNames: Array<string>; on: TransactionEvents; abort(): void; table(tableName: string): Table<any, any>; table<T>(tableName: string): Table<T, any>; table<T, Key>(tableName: string): Table<T, Key>; } interface DexieEvent { subscribers: Function[]; fire(...args:any[]): any; subscribe(fn: (...args:any[]) => any): void; unsubscribe(fn: (...args:any[]) => any): void; } interface DexieErrorEvent { subscribe(fn: (error: any) => any): void; unsubscribe(fn: (error: any) => any): void; fire(error: any): any; } interface DexieVersionChangeEvent { subscribe(fn: (event: IDBVersionChangeEvent) => any): void; unsubscribe(fn: (event: IDBVersionChangeEvent) => any): void; fire(event: IDBVersionChangeEvent): any; } interface DexieOnReadyEvent { subscribe(fn: () => any, bSticky: boolean): void; unsubscribe(fn: () => any): void; fire(): any; } interface DexieEventSet { (eventName: string): DexieEvent; // To be able to unsubscribe. addEventType ( eventName: string, chainFunction?: (f1:Function,f2:Function)=>Function, defaultFunction?: Function):Dexie.DexieEvent; addEventType ( events: {[eventName:string]: ('asap' | [(f1:Function,f2:Function)=>Function, Function])}) : Dexie.DexieEvent; } interface DbEvents extends DexieEventSet { (eventName: 'ready', subscriber: () => any, bSticky?: boolean): void; (eventName: 'populate', subscriber: () => any): void; (eventName: 'blocked', subscriber: () => any): void; (eventName: 'versionchange', subscriber: (event: IDBVersionChangeEvent) => any): void; ready: Dexie.DexieOnReadyEvent; populate: Dexie.DexieEvent; blocked: Dexie.DexieEvent; versionchange: Dexie.DexieVersionChangeEvent; } interface CreatingHookContext<T,Key> { onsuccess?: (primKey: Key) => void; onerror?: (err: any) => void; } interface UpdatingHookContext<T,Key> { onsuccess?: (updatedObj: T) => void; onerror?: (err: any) => void; } interface DeletingHookContext<T,Key> { onsuccess?: () => void; onerror?: (err: any) => void; } interface TableHooks<T,Key> extends DexieEventSet { (eventName: 'creating', subscriber: (this: CreatingHookContext<T,Key>, primKey:Key, obj:T, transaction:Transaction) => any): void; (eventName: 'reading', subscriber: (obj:T) => T | any): void; (eventName: 'updating', subscriber: (this: UpdatingHookContext<T,Key>, modifications:Object, primKey:Key, obj:T, transaction:Transaction) => any): void; (eventName: 'deleting', subscriber: (this: DeletingHookContext<T,Key>, primKey:Key, obj:T, transaction:Transaction) => any): void; creating: DexieEvent; reading: DexieEvent; updating: DexieEvent; deleting: DexieEvent; } interface TransactionEvents extends DexieEventSet { (eventName: 'complete', subscriber: () => any): void; (eventName: 'abort', subscriber: () => any): void; (eventName: 'error', subscriber: (error:any) => any): void; complete: DexieEvent; abort: DexieEvent; error: DexieEvent; } interface Table<T, Key> { name: string; schema: TableSchema; hook: TableHooks<T, Key>; get(key: Key): Promise<T | undefined>; get<R>(key: Key, thenShortcut: ThenShortcut<T | undefined,R>): Promise<R>; get(equalityCriterias: {[key:string]:IndexableType}): Promise<T | undefined>; get<R>(equalityCriterias: {[key:string]:IndexableType}, thenShortcut: ThenShortcut<T | undefined, R>): Promise<R>; where(index: string | string[]): WhereClause<T, Key>; where(equalityCriterias: {[key:string]:IndexableType}): Collection<T, Key>; filter(fn: (obj: T) => boolean): Collection<T, Key>; count(): Promise<number>; count<R>(thenShortcut: ThenShortcut<number, R>): Promise<R>; offset(n: number): Collection<T, Key>; limit(n: number): Collection<T, Key>; each(callback: (obj: T, cursor: {key: IndexableType, primaryKey: Key}) => any): Promise<void>; toArray(): Promise<Array<T>>; toArray<R>(thenShortcut: ThenShortcut<T[], R>): Promise<R>; toCollection(): Collection<T, Key>; orderBy(index: string | string[]): Collection<T, Key>; reverse(): Collection<T, Key>; mapToClass(constructor: Function): Function; add(item: T, key?: Key): Promise<Key>; update(key: Key, changes: { [keyPath: string]: any }): Promise<number>; put(item: T, key?: Key): Promise<Key>; delete(key: Key): Promise<void>; clear(): Promise<void>; bulkAdd(items: T[], keys?: IndexableTypeArrayReadonly): Promise<Key>; bulkPut(items: T[], keys?: IndexableTypeArrayReadonly): Promise<Key>; bulkDelete(keys: IndexableTypeArrayReadonly) : Promise<void>; } interface WhereClause<T, Key> { above(key: IndexableType): Collection<T, Key>; aboveOrEqual(key: IndexableType): Collection<T, Key>; anyOf(keys: IndexableTypeArrayReadonly): Collection<T, Key>; anyOf(...keys: IndexableTypeArray): Collection<T, Key>; anyOfIgnoreCase(keys: string[]): Collection<T, Key>; anyOfIgnoreCase(...keys: string[]): Collection<T, Key>; below(key: IndexableType): Collection<T, Key>; belowOrEqual(key: IndexableType): Collection<T, Key>; between(lower: IndexableType, upper: IndexableType, includeLower?: boolean, includeUpper?: boolean): Collection<T, Key>; equals(key: IndexableType): Collection<T, Key>; equalsIgnoreCase(key: string): Collection<T, Key>; inAnyRange(ranges: Array<IndexableTypeArrayReadonly>): Collection<T, Key>; startsWith(key: string): Collection<T, Key>; startsWithAnyOf(prefixes: string[]): Collection<T, Key>; startsWithAnyOf(...prefixes: string[]): Collection<T, Key>; startsWithIgnoreCase(key: string): Collection<T, Key>; startsWithAnyOfIgnoreCase(prefixes: string[]): Collection<T, Key>; startsWithAnyOfIgnoreCase(...prefixes: string[]): Collection<T, Key>; noneOf(keys: Array<IndexableType>): Collection<T, Key>; notEqual(key: IndexableType): Collection<T, Key>; } interface Collection<T, Key> { and(filter: (x: T) => boolean): Collection<T, Key>; clone(props?: Object): Collection<T, Key>; count(): Promise<number>; count<R>(thenShortcut: ThenShortcut<number, R>): Promise<R>; distinct(): Collection<T, Key>; each(callback: (obj: T, cursor: {key: IndexableType, primaryKey: Key}) => any): Promise<void>; eachKey(callback: (key: IndexableType, cursor: {key: IndexableType, primaryKey: Key}) => any): Promise<void>; eachPrimaryKey(callback: (key: Key, cursor: {key: IndexableType, primaryKey: Key}) => any): Promise<void>; eachUniqueKey(callback: (key: IndexableType, cursor: {key: IndexableType, primaryKey: Key}) => any): Promise<void>; filter(filter: (x: T) => boolean): Collection<T, Key>; first(): Promise<T | undefined>; first<R>(thenShortcut: ThenShortcut<T | undefined, R>): Promise<R>; keys(): Promise<IndexableTypeArray>; keys<R>(thenShortcut: ThenShortcut<IndexableTypeArray, R>): Promise<R>; primaryKeys(): Promise<Key[]>; primaryKeys<R>(thenShortcut: ThenShortcut<Key[], R>): Promise<R>; last(): Promise<T | undefined>; last<R>(thenShortcut: ThenShortcut<T | undefined, R>): Promise<R>; limit(n: number): Collection<T, Key>; offset(n: number): Collection<T, Key>; or(indexOrPrimayKey: string): WhereClause<T, Key>; raw(): Collection<T, Key>; reverse(): Collection<T, Key>; sortBy(keyPath: string): Promise<T[]>; sortBy<R>(keyPath: string, thenShortcut: ThenShortcut<T[], R>) : Promise<R>; toArray(): Promise<Array<T>>; toArray<R>(thenShortcut: ThenShortcut<T[], R>) : Promise<R>; uniqueKeys(): Promise<IndexableTypeArray>; uniqueKeys<R>(thenShortcut: ThenShortcut<IndexableTypeArray, R>): Promise<R>; until(filter: (value: T) => boolean, includeStopEntry?: boolean): Collection<T, Key>; // Mutating methods delete(): Promise<number>; modify(changeCallback: (obj: T, ctx:{value: T}) => void): Promise<number>; modify(changes: { [keyPath: string]: any } ): Promise<number>; } interface TableSchema { name: string; primKey: IndexSpec; indexes: IndexSpec[]; mappedClass: Function; } interface IndexSpec { name: string; keyPath: string | Array<string>; unique: boolean; multi: boolean; auto: boolean; compound: boolean; src: string; } // Make it possible to touch physical classes as they are var TableSchema: new()=>TableSchema, IndexSpec: new()=>IndexSpec, Events: any; // Too complex to define correctly right now. // errnames - handy spellcheck in switch (error.name) {} cases. var errnames: { // Error names generated by indexedDB: Unknown: 'UnknownError'; Constraint: 'ConstraintError'; Data: 'DataError'; TransactionInactive: 'TransactionInactiveError'; ReadOnly: 'ReadOnlyError'; Version: 'VersionError'; NotFound: 'NotFoundError'; InvalidState: 'InvalidStateError'; InvalidAccess: 'InvalidAccessError'; Abort: 'AbortError'; Timeout: 'TimeoutError'; QuotaExceeded: 'QuotaExceededError'; Syntax: 'SyntaxError'; DataClone: 'DataCloneError'; // Dexie-specific error names: Modify: 'ModifyError'; OpenFailed: 'OpenFailedError'; VersionChange: 'VersionChangeError'; Schema: 'SchemaError'; Upgrade: 'UpgradeError'; InvalidTable: 'InvalidTableError'; MissingAPI: 'MissingAPIError'; NoSuchDatabase: 'NoSuchDatabaseError'; InvalidArgument: 'InvalidArgumentError'; SubTransaction: 'Error'; Unsupported: 'UnsupportedError'; Internal: 'InternalError'; DatabaseClosed: 'DatabaseClosedError'; }; class DexieError extends Error { name: string; message: string; stack: string; inner: any; constructor (name?:string, message?:string); toString(): string; } class ModifyError extends DexieError{ constructor (msg?:string, failures?: any[], successCount?: number, failedKeys?: IndexableTypeArrayReadonly); failures: Array<any>; failedKeys: IndexableTypeArrayReadonly; successCount: number; } class BulkError extends DexieError{ constructor (msg?:string, failures?: any[]); failures: Array<any>; } class OpenFailedError extends DexieError {constructor (msg?: string, inner?: Object);constructor (inner: Object);} class VersionChangeError extends DexieError {constructor (msg?: string, inner?: Object); constructor (inner: Object);} class SchemaError extends DexieError {constructor (msg?: string, inner?: Object); constructor (inner: Object);} class UpgradeError extends DexieError {constructor (msg?: string, inner?: Object); constructor (inner: Object);} class InvalidTableError extends DexieError {constructor (msg?: string, inner?: Object); constructor (inner: Object);} class MissingAPIError extends DexieError {constructor (msg?: string, inner?: Object); constructor (inner: Object);} class NoSuchDatabaseError extends DexieError {constructor (msg?: string, inner?: Object); constructor (inner: Object);} class InvalidArgumentError extends DexieError {constructor (msg?: string, inner?: Object); constructor (inner: Object);} class SubTransactionError extends DexieError {constructor (msg?: string, inner?: Object); constructor (inner: Object);} class UnsupportedError extends DexieError {constructor (msg?: string, inner?: Object); constructor (inner: Object);} class InternalError extends DexieError {constructor (msg?: string, inner?: Object); constructor (inner: Object);} class DatabaseClosedError extends DexieError {constructor (msg?: string, inner?: Object); constructor (inner: Object);} class UnknownError extends DexieError {constructor (msg?: string, inner?: Object); constructor (inner: Object);} class ConstraintError extends DexieError {constructor (msg?: string, inner?: Object); constructor (inner: Object);} class DataError extends DexieError {constructor (msg?: string, inner?: Object); constructor (inner: Object);} class TransactionInactiveError extends DexieError {constructor (msg?: string, inner?: Object); constructor (inner: Object);} class ReadOnlyError extends DexieError {constructor (msg?: string, inner?: Object); constructor (inner: Object);} class VersionError extends DexieError {constructor (msg?: string, inner?: Object); constructor (inner: Object);} class NotFoundError extends DexieError {constructor (msg?: string, inner?: Object); constructor (inner: Object);} class InvalidStateError extends DexieError {constructor (msg?: string, inner?: Object); constructor (inner: Object);} class InvalidAccessError extends DexieError {constructor (msg?: string, inner?: Object); constructor (inner: Object);} class AbortError extends DexieError {constructor (msg?: string, inner?: Object); constructor (inner: Object);} class TimeoutError extends DexieError {constructor (msg?: string, inner?: Object); constructor (inner: Object);} class QuotaExceededError extends DexieError {constructor (msg?: string, inner?: Object); constructor (inner: Object);} class SyntaxError extends DexieError {constructor (msg?: string, inner?: Object); constructor (inner: Object);} class DataCloneError extends DexieError {constructor (msg?: string, inner?: Object); constructor (inner: Object);} } export default Dexie;