import { Record, Union } from '@fable-org/fable-library-js/Types.js';
import { TypeInfo } from '@fable-org/fable-library-js/Reflection.js';
import { IComparable, IEquatable } from '@fable-org/fable-library-js/Util.js';
import { int64 } from '@fable-org/fable-library-js/BigInt.js';
import { FSharpList } from '@fable-org/fable-library-js/List.js';
export type FullTextSearch_$union = FullTextSearch<0> | FullTextSearch<1> | FullTextSearch<2> | FullTextSearch<3>;
export type FullTextSearch_$cases = {
    0: ["Exact", []];
    1: ["Complete", []];
    2: ["PerformanceComplete", []];
    3: ["Fuzzy", []];
};
export declare function FullTextSearch_Exact(): FullTextSearch<0>;
export declare function FullTextSearch_Complete(): FullTextSearch<1>;
export declare function FullTextSearch_PerformanceComplete(): FullTextSearch<2>;
export declare function FullTextSearch_Fuzzy(): FullTextSearch<3>;
export declare class FullTextSearch<Tag extends keyof FullTextSearch_$cases> extends Union<Tag, FullTextSearch_$cases[Tag][0]> {
    readonly tag: Tag;
    readonly fields: FullTextSearch_$cases[Tag][1];
    constructor(tag: Tag, fields: FullTextSearch_$cases[Tag][1]);
    cases(): string[];
}
export declare function FullTextSearch_$reflection(): TypeInfo;
export declare class Ontology extends Record implements IEquatable<Ontology>, IComparable<Ontology> {
    readonly Name: string;
    readonly Version: string;
    readonly LastUpdated: Date;
    readonly Author: string;
    constructor(Name: string, Version: string, LastUpdated: Date, Author: string);
}
export declare function Ontology_$reflection(): TypeInfo;
export declare function Ontology_create(name: string, version: string, lastUpdated: Date, authors: string): Ontology;
export declare class Term extends Record implements IEquatable<Term>, IComparable<Term> {
    readonly Accession: string;
    readonly Name: string;
    readonly Description: string;
    readonly IsObsolete: boolean;
    readonly FK_Ontology: string;
    constructor(Accession: string, Name: string, Description: string, IsObsolete: boolean, FK_Ontology: string);
}
export declare function Term_$reflection(): TypeInfo;
export declare function Term_createTerm_Z1F90B1F6(accession: string, name: string, description: string, isObsolete: boolean, ontologyName: string): Term;
export declare class TermRelationship extends Record implements IEquatable<TermRelationship>, IComparable<TermRelationship> {
    readonly TermID: int64;
    readonly Relationship: string;
    readonly RelatedTermID: int64;
    constructor(TermID: int64, Relationship: string, RelatedTermID: int64);
}
export declare function TermRelationship_$reflection(): TypeInfo;
export declare class TreeTypes_TreeTerm extends Record implements IEquatable<TreeTypes_TreeTerm>, IComparable<TreeTypes_TreeTerm> {
    readonly NodeId: int64;
    readonly Term: Term;
    constructor(NodeId: int64, Term: Term);
}
export declare function TreeTypes_TreeTerm_$reflection(): TypeInfo;
export declare class TreeTypes_TreeRelationship extends Record implements IEquatable<TreeTypes_TreeRelationship>, IComparable<TreeTypes_TreeRelationship> {
    readonly RelationshipId: int64;
    readonly StartNodeId: int64;
    readonly EndNodeId: int64;
    readonly Type: string;
    constructor(RelationshipId: int64, StartNodeId: int64, EndNodeId: int64, Type: string);
}
export declare function TreeTypes_TreeRelationship_$reflection(): TypeInfo;
export declare class TreeTypes_Tree extends Record implements IEquatable<TreeTypes_Tree>, IComparable<TreeTypes_Tree> {
    readonly Nodes: FSharpList<TreeTypes_TreeTerm>;
    readonly Relationships: FSharpList<TreeTypes_TreeRelationship>;
    constructor(Nodes: FSharpList<TreeTypes_TreeTerm>, Relationships: FSharpList<TreeTypes_TreeRelationship>);
}
export declare function TreeTypes_Tree_$reflection(): TypeInfo;
//# sourceMappingURL=Database.fs.d.ts.map