import { float64, int32 } from '@fable-org/fable-library-js/Int32.js';
import { Union } from '@fable-org/fable-library-js/Types.js';
import { OntologyAnnotation } from './OntologyAnnotation.fs.js';
import { Option } from '@fable-org/fable-library-js/Option.js';
import { IISAPrintable } from './Helper/Printer.fs.js';
import { TypeInfo } from '@fable-org/fable-library-js/Reflection.js';
export type Value_$union = Value<0> | Value<1> | Value<2> | Value<3>;
export type Value_$cases = {
    0: ["Ontology", [OntologyAnnotation]];
    1: ["Int", [int32]];
    2: ["Float", [float64]];
    3: ["Name", [string]];
};
export declare function Value_Ontology(Item: OntologyAnnotation): Value<0>;
export declare function Value_Int(Item: int32): Value<1>;
export declare function Value_Float(Item: float64): Value<2>;
export declare function Value_Name(Item: string): Value<3>;
export declare class Value<Tag extends keyof Value_$cases> extends Union<Tag, Value_$cases[Tag][0]> implements IISAPrintable {
    readonly tag: Tag;
    readonly fields: Value_$cases[Tag][1];
    constructor(tag: Tag, fields: Value_$cases[Tag][1]);
    cases(): string[];
    static fromString(value: string): Value_$union;
    static fromOptions(value: Option<string>, termSource: Option<string>, termAccesssion: Option<string>): Option<Value_$union>;
    static toOptions(value: Value_$union): [Option<string>, Option<string>, Option<string>];
    get Text(): string;
    AsName(): string;
    AsInt(): int32;
    AsFloat(): float64;
    AsOntology(): OntologyAnnotation;
    get IsAnOntology(): boolean;
    get IsNumerical(): boolean;
    get IsAnInt(): boolean;
    get IsAFloat(): boolean;
    get IsAText(): boolean;
    static getText(v: Value_$union): string;
    Print(): string;
    PrintCompact(): string;
}
export declare function Value_$reflection(): TypeInfo;
//# sourceMappingURL=Value.fs.d.ts.map