import { default as DBrowser } from './DBrowser'; import { PartialJsonjsdbConfig, DatabaseMetadata, DbFilter, FilterBuilder, TableInfo, TableRow } from './types'; type LoadOption = { filterBuilder?: FilterBuilder; useCache?: boolean; version?: number | string; shouldStandardizeIds?: boolean; shouldTransformKeys?: boolean; }; declare global { interface Window { jsonjs: { data?: Record; }; } } export default class Loader { private tableIndex; private cachePrefix; private idSuffix; private browser; private tableIndexCache?; private lastModifTimestamp?; private metaVariable; private validIdChars; private validIdPattern; private invalidIdPattern; private indexTableNames; db: Record; metadata: DatabaseMetadata; constructor(browser: DBrowser, config: PartialJsonjsdbConfig); load(path: string, useCache?: boolean, option?: LoadOption): Promise>; loadFromCache(tableName: string): Promise; saveToCache(data: unknown[] | Record, tableName: string): Promise; loadViaScript(path: string, tableName: string, option?: LoadOption): Promise; loadViaFetch(path: string, tableName: string, option?: LoadOption): Promise; private isVariableId; private standardizeId; private snakeToCamel; private arrayToObject; private applyTransform; private isInCache; loadJsonjs(path: string, tableName: string, option?: { useCache: boolean; version: number | string; shouldStandardizeIds?: boolean; shouldTransformKeys?: boolean; }): Promise; loadTables(path: string, useCache: boolean): Promise; getLastModifTimestamp(): number; extractLastModif(tablesInfo: TableInfo[]): TableInfo[]; checkConformity(tablesInfo: TableInfo[]): TableInfo[]; normalizeSchema(): void; filter(filter: DbFilter): false | undefined; idToIndex(tableName: string, id: number | string): number | false; createIndex(): void; processManyToMany(table: { name: string; }, side: string): false | undefined; processOneToMany(table: { name: string; }): void; processRoleManyToMany(table: { name: string; }): void; processSelfOneToMany(table: { name: string; }): void; addPrimaryKey(table: { name: string; }): false | undefined; addForeignKey(variable: string, table: { name: string; }): void; private resolveRelationField; private parseIds; addDbSchema(jsonSchemas: Record[]): void; addMeta(userData?: Record, schema?: Record[]): void; addMetaVariables(tableName: string, datasetData: unknown[], variables: string[]): void; } export {};