import { ParseResult } from 'papaparse'; import { Parameter } from './parameter'; import { Optional } from './types'; export type ConfigParameter = Optional; /** * Whether a configuration file has to be loaded through the SMM Setup Wizard rather than through the * ordinary drive parameter path. * * Two things decide it. A configuration only needs the wizard if it carries safety parameters at all, * and the wizard only applies to a device that keeps its safety configuration on a detachable module — * where those parameters live in a separate parameter space, which is what the wizard and its * verification and validation steps exist for. * * A device with no such module keeps its safety parameters in its own object dictionary and writes them * into the same config.csv as everything else, so for it they are drive parameters. That is a Circulo NG: * sending the operator to the wizard would send that configuration somewhere it does not belong, and * leave the drive with no way to be configured from a file at all. * * `deviceSupportsSafetyModule` comes from {@link supportsSafetyModule}, which reads the device's own * dictionary. Pass `true` when it is not known: refusing a load that would have been allowed is * recoverable, and loading safety parameters down a path that cannot verify them is not. */ export declare function requiresSmmSetupWizard(parameterIndexes: readonly number[], deviceSupportsSafetyModule: boolean): boolean; /** * Parses the contents of configuration files such as config.csv, .factory_config, and .assembly_config. */ export declare class ConfigFile { readonly content: string; readonly file?: Pick | undefined; readonly apiId?: string; readonly firmwareVersion?: string; readonly header?: string; readonly parseResult?: ParseResult; parameters: ConfigParameter[]; constructor(content: string, file?: Pick | undefined); get firmwareId(): string | undefined; /** * Whether the file carries any safety parameter. Says nothing about how it has to be loaded — * see {@link requiresSmmSetupWizard} for that. */ get containsSmmParameters(): boolean; /** * Whether this file has to be loaded through the SMM Setup Wizard on a device that keeps its safety * configuration on a detachable module. See {@link requiresSmmSetupWizard}. */ requiresSmmSetupWizard(deviceSupportsSafetyModule: boolean): boolean; get hasParseErrors(): boolean; get numberOfParameters(): number; toString(): string; }