export type {
  EntityRef,
  EntityType,
  FieldValueMap,
  LegacyFieldGroup as FieldGroup,
  ResolvedFieldGroup,
  LegacyFieldDefinition as FieldDefinition,
  FieldValue,
} from '@platform-modules/fields'
import type { EntityRef, EntityType, FieldValueMap, LegacyFieldGroup as FieldGroup, ResolvedFieldGroup } from '@platform-modules/fields'

export interface FieldsClient {
  getEntityValues(ref: EntityRef, opts: { subType?: string }): Promise<FieldValueMap>
  setEntityValues(input: { ref: EntityRef; groupId: string; values: FieldValueMap }): Promise<void>
  resolveGroups(opts: { entityType: EntityType; subType?: string }): Promise<ResolvedFieldGroup[]>
  listGroups(opts: { entityType?: EntityType; subType?: string }): Promise<ResolvedFieldGroup[]>
  createGroup(g: FieldGroup): Promise<ResolvedFieldGroup>
  updateGroup(id: string, patch: Partial<FieldGroup>): Promise<ResolvedFieldGroup>
  deleteGroup(id: string): Promise<void>
}
