import { type StoreDefinition } from 'pinia'; import { ID, ApiNames } from './types'; type ItemActions = { [Property in keyof T]: (id: ModelT['id'], data?: any) => Promise; }; export default function createStores(models: any, baseURL: string | undefined, naming: ApiNames, api: any): { [K in keyof Type]: ModelInfo[K] extends { singleton: boolean; } ? StoreDefinition; }, {}, ItemActions> & { update: (data: Partial, filter?: object) => Promise>; }> : StoreDefinition (id: ID) => Type[K]; }, ItemActions & { create: (data: Partial) => Promise; bulkCreate: (data: Partial[]) => Promise; update: (id: Type[K]["id"], data: Partial) => Promise; bulkUpdate: (data: Partial[]) => Promise; localUpdate: (id: Type[K]["id"], data: Partial) => Promise; delete: (id: Type[K]["id"]) => Promise; bulkDelete: (ids: Type[K]["id"][]) => Promise; }>; }; export {};