import type ApiResource from '~/models/ApiResource' import type { EnumChoice } from '~/types/interfaces' import type { Query as PiniaOrmQuery, Collection as PiniaOrmCollection, } from 'pinia-orm' type AnyJson = Record interface AssociativeArray { [key: string]: unknown } interface Connector { request( method: HTTP_METHOD, url: string, body: null | unknown, params: null | AssociativeArray, query: null | AssociativeArray, ) } interface HydraMetadata { readonly totalItems?: number first?: number last?: number next?: number previous?: number type?: METADATA_TYPE } interface ApiResponse { data: AnyJson metadata: HydraMetadata } interface ApiCollection extends ApiResponse { data: AnyJson metadata: HydraMetadata } interface Pagination { first?: number last?: number next?: number previous?: number } interface Collection { items: PiniaOrmCollection pagination: Pagination totalItems: number | undefined } interface ApiFilter { applyToPiniaOrmQuery: ( query: PiniaOrmQuery, ) => PiniaOrmQuery getApiQueryPart: () => string } interface EnumItem { value: string label: string } interface CollectionResponse { member: Array totalItems: number } type CollectionResponsePromise = Response type Enum = Array