import { élémentsBd } from "./types.js"; import type { élémentBdListeDonnées, élémentDonnées } from "./tableaux.js"; import type { catégorieVariables } from "./variables.js"; export type typeRègle = "catégorie" | "bornes" | "valeurCatégorique" | "existe"; export type sourceRègle = { type: "variable"; id: string; } | { type: "tableau"; id: string; }; export type règleVariableAvecId = { id: string; règle: T; }; export type règleVariable = règleExiste | règleBornes | règleValeurCatégorique | règleCatégorie; export type règleColonne = { règle: règleVariableAvecId; source: sourceRègle; colonne: string; }; export type typeOp = ">" | "<" | ">=" | "<=" | "≥" | "≤"; export type règleExiste = { typeRègle: "existe"; détails: détailsRègleExiste; }; export type détailsRègleExiste = Record; export type règleBornes = { typeRègle: "bornes"; détails: T; }; export type détailsRègleBornes = détailsRègleBornesFixe | détailsRègleBornesDynamiqueColonne | détailsRègleBornesDynamiqueVariable; export type détailsRègleBornesFixe = { type: "fixe"; val: number; op: typeOp; }; export type détailsRègleBornesDynamiqueColonne = { type: "dynamiqueColonne"; val: string; op: typeOp; }; export type détailsRègleBornesDynamiqueVariable = { type: "dynamiqueVariable"; val: string; op: typeOp; }; export type règleValeurCatégorique = { typeRègle: "valeurCatégorique"; détails: T; }; export type détailsRègleValeurCatégorique = détailsRègleValeurCatégoriqueFixe | détailsRègleValeurCatégoriqueDynamique; export type détailsRègleValeurCatégoriqueFixe = { type: "fixe"; options: (string | number | boolean)[]; }; export type détailsRègleValeurCatégoriqueDynamique = { type: "dynamique"; tableau: string; colonne: string; }; export type règleCatégorie = { typeRègle: "catégorie"; détails: détailsRègleCatégorie; }; export type détailsRègleCatégorie = { catégorie: catégorieVariables; }; export type Erreur = { règle: règleColonne; }; export type erreurValidation = { id: string; erreur: Erreur; }; export type erreurRègle = erreurRègleCatégoriqueColonneInexistante | erreurRègleBornesColonneInexistante | erreurRègleBornesVariableNonPrésente; export type erreurRègleCatégoriqueColonneInexistante = { règle: règleColonne>; détails: "colonneCatégInexistante"; }; export type erreurRègleBornesColonneInexistante = { règle: règleColonne>; détails: "colonneBornesInexistante"; }; export type erreurRègleBornesVariableNonPrésente = { règle: règleColonne>; détails: "variableBornesNonPrésente"; }; export type schémaFonctionValidation = (valeurs: élémentDonnées[]) => erreurValidation[]; export declare function générerFonctionRègle({ règle, varsÀColonnes, donnéesCatégorie, }: { règle: règleColonne; varsÀColonnes: { [key: string]: string; }; donnéesCatégorie?: élémentsBd[]; }): schémaFonctionValidation;