/** * Performs defuzzification using the Centroid (Center of Gravity) method. * @param {Object.} fuzzyOutput - Results from rule evaluation. * @param {FuzzySet[]} outputSets - The sets defining the output range. * @param {number} [step=0.5] - Resolution of the integral approximation. * @returns {number} The crisp output value. */ export declare const defuzzifyCentroid: (fuzzyOutput: Record, outputSets: FuzzySet[], step?: number) => number; /** * Utility to calculate fuzzy membership using a trapezoidal shape safely. * @param {number} value - The input value to check. * @param {number} a - Start of the rise. * @param {number} b - End of the rise (start of plateau). * @param {number} c - Start of the fall (end of plateau). * @param {number} d - End of the fall. * @param {boolean} [optimize=false] - Optimizes performance by skipping math for absolute bounds. * @returns {number} Degree of membership [0, 1]. */ export declare const trapezoid: (value: number, a: number, b: number, c: number, d: number, optimize?: boolean) => number; /** * Represents a single Membership Function (Trapezoidal). */ declare class FuzzySet { #private; /** * Utility to calculate fuzzy membership using a trapezoidal shape. * @param {number} value - The input value to check. * @param {number} a - Start of the rise. * @param {number} b - End of the rise (start of plateau). * @param {number} c - Start of the fall (end of plateau). * @param {number} d - End of the fall. * @param {boolean} [optimize=false] - Performance optimization flag. * @returns {number} Degree of membership [0, 1]. */ static trapezoid(value: number, a: number, b: number, c: number, d: number, optimize?: boolean): number; get name(): string; set name(value: string); get a(): number; set a(value: number); get b(): number; set b(value: number); get c(): number; set c(value: number); get d(): number; set d(value: number); get optimize(): boolean; set optimize(value: boolean); /** * @param {string} name - Name of the set (e.g., "Hot"). * @param {number} a - Left foot. * @param {number} b - Left shoulder. * @param {number} c - Right shoulder. * @param {number} d - Right feet. * @param {boolean} [optimize=false] - Enables performance optimization. */ constructor(name: string, a: number, b: number, c: number, d: number, optimize?: boolean); /** * Calculates the membership degree. * @param {number} x - Crisp input. * @returns {number} */ calculate(x: number): number; } /** * The Inference Engine handles linguistic variables and defuzzification. */ declare class MamdaniInferenceSystem { #private; /** * Registers a linguistic variable and its sets. * @param {string} name - Variable name (e.g., "temperature"). * @param {FuzzySet[]} sets - Array of fuzzy sets. */ addVariable(name: string, sets: FuzzySet[]): void; /** * Removes a linguistic variable. * @param {string} name - Variable name (e.g., "temperature"). * @returns {boolean} True if the element was successfully removed. */ removeVariable(name: string): boolean; /** * Gets a linguistic variable and its sets. * @param {string} name - Variable name (e.g., "temperature"). * @returns {FuzzySet[]} */ getVariable(name: string): FuzzySet[]; /** * Checks if a linguistic variable exists. * @param {string} name - Variable name (e.g., "temperature"). * @returns {boolean} */ hasVariable(name: string): boolean; /** * Fuzzifies a crisp input into a map of memberships. * @param {string} varName * @param {number} value * @returns {Object.} */ fuzzify(varName: string, value: number): Record; } export { FuzzySet, MamdaniInferenceSystem }; //# sourceMappingURL=TinyMamdaniInferenceSystem.d.mts.map