import type { DexieTablePrimaryKeyType, KeysOf } from "./DexieTablePrimaryKeyTypes"; import type Dexie from "dexie"; import type { ClassConstructor } from "@3fv/guard"; /** * Defines a table's configuration, specifically the `class` constructor, * primary key field(s) and the index signature * * @template {object} T, {DexieTablePrimaryKeyField} PrimaryKeyField */ export declare type DexieTableConfig> = [ClassConstructor, PrimaryKeyField, string?, DexieTableOptions?]; /** * Infer table config from object and table name */ export declare type DexieTableConfigInferred = Config extends DexieTableConfig ? Dexie.Table> : never; /** * Creates `Dexie.Table` with a `T` type and `KeyType` * * @see Dexie.Table */ export declare type DexieTable> = Dexie.Table>; export interface DexieTableOptions { mapToClass: boolean; } export declare type DexieTableOptionsArg = Partial;