import { DBDef_V3, DBProto } from '@nu-art/ts-common'; import { ModuleFE_BaseDB } from './ModuleFE_BaseDB.js'; import { ApiDefCaller, ApiStruct_DBApiGenIDBV3 } from '../../shared.js'; import { DBApiFEConfig } from '../../core/db-api-gen/db-def.js'; import { ThunderDispatcher } from '../../core/thunder-dispatcher.js'; import { CustomMemCreators } from './types.js'; /** * Base API module for frontend database operations * * Provides core functionality for database CRUD operations through API endpoints * including support for operation queueing and request management. * * @template Proto - Database protocol type extending DBProto * @template _Config - Base configuration type * @template Config - Extended configuration type with DBApiFEConfig */ export declare abstract class ModuleFE_BaseApi, _Config extends object = object, Config extends _Config & DBApiFEConfig = _Config & DBApiFEConfig> extends ModuleFE_BaseDB implements ApiDefCaller> { readonly v1: ApiDefCaller>['v1']; private operations; /** * Creates an instance of ModuleFE_BaseApi * * @param dbDef - Database definition * @param defaultDispatcher - Default dispatcher for events * @param version - Optional API version string * @param customMemCreators - Optional custom memory creators for the database */ protected constructor(dbDef: DBDef_V3, defaultDispatcher: ThunderDispatcher, version?: string, customMemCreators?: CustomMemCreators); /** * Resolves the API definition for the database * * @param dbDef - Database definition * @param version - Optional API version * @returns Generated API definition for the database */ protected resolveApiDef(dbDef: DBDef_V3, version: string | undefined): import("../../shared.js").ApiDefRouter>; /** * Cleans up data before upserting to database * * @param toUpsert - Data to be upserted * @returns Cleaned up data */ protected cleanUp: (toUpsert: Proto["uiType"]) => Proto["uiType"]; private updatePending; }