import type { Collection } from "../costum/types.js"; /** Type logique d'un champ de base (aligné sur `CostumFieldType`). */ export type EntityFieldType = "string" | "number" | "boolean" | "date" | "array" | "object"; /** Indice sémantique de rendu — le site le mappe vers son widget (la lib reste UI-neutre). */ export type EntityFieldFormat = "email" | "url" | "tel" | "markdown" | "address" | "image" | "social" | "openingHours"; /** Champ de base décrit pour un formulaire (curé, neutre). */ export interface BaseFieldDescriptor { name: string; type: EntityFieldType; multiple: boolean; /** Options de choix (select/multiselect). */ enum?: (string | number)[]; /** Libellé humain curé (la source schéma n'en a pas de fiable). */ label?: string; required?: boolean; /** Indice de rendu pour le consommateur (widget spécialisé). */ format?: EntityFieldFormat; } /** Formulaire de BASE d'une entité (champs curés) — pendant neutre de `CostumFormDescriptor`. */ export interface EntityFormDescriptor { collection: Collection; fields: BaseFieldDescriptor[]; } /** * Décrit le formulaire de BASE (création) d'une entité — curé, neutre. `null` si non couverte * (le consommateur retombe alors sur le costum seul). Statique : aucune dépendance réseau/instance. */ export declare function describeEntityForm(collection: Collection): EntityFormDescriptor | null;