export declare type ModelConstraint = { [key: string]: { min?: number; max?: number; equal?: number; }; }; export declare type ModelVariable = { [key: string]: { [key: string]: number; }; }; export interface Model { optimize: string; opType: 'min' | 'max'; constraints: ModelConstraint; variables: ModelVariable; ints?: { [key: string]: number; }; } export interface ModelResult extends Record { feasible: boolean; bounded: boolean; result: number; } export interface Item { name: string; code: string; id: string; } export interface Amount { item: T; amount?: number; } export interface Constraint extends Amount { item: T; min?: number; max?: number; } export interface Nutrient extends Item { } export interface Ingredient extends Item { cost: number; nutrients: Amount[]; } export interface Formula extends Item { cost?: number; isFeasible?: boolean; batchSize?: number; nutrients: Constraint[]; ingredients: Constraint[]; } export interface StoredFormula extends Omit { nutrients: Constraint[]; ingredients: Constraint[]; } export declare type FormulaType = Formula | StoredFormula; export interface FormulaSet { nutrients: Nutrient[]; ingredients: Ingredient[]; formulas: FormulaType[]; }