import { Option } from '@fable-org/fable-library-js/Option.js';
import { ProtocolParameter } from './ProtocolParameter.fs.js';
import { Value_$union } from '../Value.fs.js';
import { OntologyAnnotation } from '../OntologyAnnotation.fs.js';
import { IComparable, IEquatable } from '@fable-org/fable-library-js/Util.js';
import { Record } from '@fable-org/fable-library-js/Types.js';
import { IISAPrintable } from '../Helper/Printer.fs.js';
import { IPropertyValue } from '../IPropertyValue.fs.js';
import { TypeInfo } from '@fable-org/fable-library-js/Reflection.js';
export declare class ProcessParameterValue extends Record implements IEquatable<ProcessParameterValue>, IComparable<ProcessParameterValue>, IPropertyValue, IISAPrintable {
    readonly Category: Option<ProtocolParameter>;
    readonly Value: Option<Value_$union>;
    readonly Unit: Option<OntologyAnnotation>;
    constructor(Category: Option<ProtocolParameter>, Value: Option<Value_$union>, Unit: Option<OntologyAnnotation>);
    static make(category: Option<ProtocolParameter>, value: Option<Value_$union>, unit: Option<OntologyAnnotation>): ProcessParameterValue;
    static create(Category?: ProtocolParameter, Value?: Value_$union, Unit?: OntologyAnnotation): ProcessParameterValue;
    static get empty(): ProcessParameterValue;
    get NameText(): string;
    get TryNameText(): string | undefined;
    get ValueText(): string;
    get ValueWithUnitText(): string;
    MapCategory(f: ((arg0: OntologyAnnotation) => OntologyAnnotation)): ProcessParameterValue;
    SetCategory(c: OntologyAnnotation): ProcessParameterValue;
    static tryGetNameText(pv: ProcessParameterValue): Option<string>;
    static getNameText(pv: ProcessParameterValue): string;
    static nameEqualsString(name: string, pv: ProcessParameterValue): boolean;
    static getCategory(pv: ProcessParameterValue): Option<ProtocolParameter>;
    static createAsPV(alternateName: Option<string>, measurementMethod: Option<string>, description: Option<string>, category: Option<OntologyAnnotation>, value: Option<Value_$union>, unit: Option<OntologyAnnotation>): ProcessParameterValue;
    Print(): string;
    PrintCompact(): string;
    AlternateName(): Option<string>;
    MeasurementMethod(): Option<string>;
    Description(): Option<string>;
    GetCategory(): Option<OntologyAnnotation>;
    GetAdditionalType(): string;
    GetValue(): Option<Value_$union>;
    GetUnit(): Option<OntologyAnnotation>;
}
export declare function ProcessParameterValue_$reflection(): TypeInfo;
//# sourceMappingURL=ProcessParameterValue.fs.d.ts.map