import { CBFileSystem } from '../node/file-system'; import { IparamInputs, IparamDefns } from '../types/common'; /** * Service for managing parameters * Handles loading, validation, and management of iparams and inputs */ export declare class IparamsService { private fileSystem; private iparamDefnsValidator; private inputsValidator; constructor(fileSystem: CBFileSystem); private getIparamsFilePath; private getInputsFilePath; /** * Checks if iparams.json file exists * @param {string} appDir - The application directory * @returns {boolean} True if the file exists */ iparamsFileExists(appDir: string): boolean; /** * Loads and validates the iparamDefns * @param {string} appDir - The application directory * @returns {IparamDefns} The validated iparamDefns * @throws {Error} If the iparamDefns is invalid or cannot be read */ loadIparamDefns(appDir: string): IparamDefns; /** * Loads iparam inputs (without validation against defns). Validates file shape only. * @param {string} appDir - The application directory * @returns {IparamInputs} The loaded inputs * @throws {Error} If `iparams.local.json` is missing, invalid JSON, or not a plain object */ loadInputs(appDir: string): IparamInputs; /** * Merges inputs with defaults per section. * @param {IparamInputs} inputs - The provided input values * @param {IparamDefns} iparamDefns - The iparam defns * @returns {IparamInputs} The merged inputs with defaults applied * @throws {MissingRequiredParamsError} When required parameters are missing */ mergeInputsWithDefaults(inputs: IparamInputs, iparamDefns: IparamDefns): IparamInputs; /** * Loads inputs and defns, validates inputs against defns, merges with defaults, returns resolved iparams. * @param {string} appDir - The application directory * @returns {IparamInputs} The merged inputs with defaults applied * @throws {Error} If validation fails, or required parameters are missing and have no defaults */ validateAndGetInputsForExecution(appDir: string): IparamInputs; /** * Saves the iparamDefns to file * @param {string} appDir - The application directory * @param {IparamDefns} iparamDefns - The iparamDefns to save * @throws {Error} If the iparamDefns is invalid or cannot be written */ saveIparamDefns(appDir: string, iparamDefns: IparamDefns): void; /** * Loads defns and merges inputs, ensures iparams.local.json exists, then writes. * @param {string} appDir - The application directory * @param {IparamInputs} inputs - The raw input values from the request * @throws {Error} If iparams.json or iparams.local.json is missing, or validation fails */ saveInputs(appDir: string, inputs: IparamInputs): void; /** * Validates iparams file without loading it * @param {string} appDir - The application directory * @throws {Error} If the iparamDefns is invalid */ validateIparamDefns(appDir: string): void; }