import { Record } from '@fable-org/fable-library-js/Types.js';
import { Option } from '@fable-org/fable-library-js/Option.js';
import { MaterialAttribute } from './MaterialAttribute.fs.js';
import { OntologyAnnotation } from '../OntologyAnnotation.fs.js';
import { IISAPrintable } from '../Helper/Printer.fs.js';
import { Value_$union } from '../Value.fs.js';
import { IComparable, IEquatable } from '@fable-org/fable-library-js/Util.js';
import { IPropertyValue } from '../IPropertyValue.fs.js';
import { TypeInfo } from '@fable-org/fable-library-js/Reflection.js';
export declare class MaterialAttributeValue extends Record implements IEquatable<MaterialAttributeValue>, IComparable<MaterialAttributeValue>, IPropertyValue, IISAPrintable {
    readonly ID: Option<string>;
    readonly Category: Option<MaterialAttribute>;
    readonly Value: Option<Value_$union>;
    readonly Unit: Option<OntologyAnnotation>;
    constructor(ID: Option<string>, Category: Option<MaterialAttribute>, Value: Option<Value_$union>, Unit: Option<OntologyAnnotation>);
    Print(): string;
    PrintCompact(): string;
    AlternateName(): Option<string>;
    MeasurementMethod(): Option<string>;
    Description(): Option<string>;
    GetCategory(): Option<OntologyAnnotation>;
    GetValue(): Option<Value_$union>;
    GetUnit(): Option<OntologyAnnotation>;
    GetAdditionalType(): string;
}
export declare function MaterialAttributeValue_$reflection(): TypeInfo;
export declare function MaterialAttributeValue_make(id: Option<string>, category: Option<MaterialAttribute>, value: Option<Value_$union>, unit: Option<OntologyAnnotation>): MaterialAttributeValue;
export declare function MaterialAttributeValue_create_ZE1D108D(Id?: string, Category?: MaterialAttribute, Value?: Value_$union, Unit?: OntologyAnnotation): MaterialAttributeValue;
export declare function MaterialAttributeValue_get_empty(): MaterialAttributeValue;
/**
 * Returns the name of the category as string
 */
export declare function MaterialAttributeValue__get_NameText(this$: MaterialAttributeValue): string;
/**
 * Returns the name of the category as string
 */
export declare function MaterialAttributeValue__get_TryNameText(this$: MaterialAttributeValue): Option<string>;
export declare function MaterialAttributeValue__get_ValueText(this$: MaterialAttributeValue): string;
export declare function MaterialAttributeValue__get_ValueWithUnitText(this$: MaterialAttributeValue): string;
export declare function MaterialAttributeValue__MapCategory_658CFBF6(this$: MaterialAttributeValue, f: ((arg0: OntologyAnnotation) => OntologyAnnotation)): MaterialAttributeValue;
export declare function MaterialAttributeValue__SetCategory_ZDED3A0F(this$: MaterialAttributeValue, c: OntologyAnnotation): MaterialAttributeValue;
/**
 * Returns the name of the characteristic value as string if it exists
 */
export declare function MaterialAttributeValue_tryGetNameText_Z772273B8(mv: MaterialAttributeValue): Option<string>;
/**
 * Returns the name of the characteristic value as string
 */
export declare function MaterialAttributeValue_getNameAsString_Z772273B8(mv: MaterialAttributeValue): Option<string>;
/**
 * Returns true if the given name matches the name of the characteristic value
 */
export declare function MaterialAttributeValue_nameEqualsString(name: string, mv: MaterialAttributeValue): boolean;
export declare function MaterialAttributeValue_createAsPV(alternateName: Option<string>, measurementMethod: Option<string>, description: Option<string>, category: Option<OntologyAnnotation>, value: Option<Value_$union>, unit: Option<OntologyAnnotation>): MaterialAttributeValue;
//# sourceMappingURL=MaterialAttributeValue.fs.d.ts.map