import { Option } from '@fable-org/fable-library-js/Option.js';
import { FSharpSet } from '@fable-org/fable-library-js/Set.js';
import { IComparable, IEquatable } from '@fable-org/fable-library-js/Util.js';
import { int32 } from '@fable-org/fable-library-js/Int32.js';
import { Record } from '@fable-org/fable-library-js/Types.js';
import { Async } from '@fable-org/fable-library-js/AsyncBuilder.js';
import { TermQueryResults, TermQuery } from './DTOs/TermQuery.fs.js';
import { TreeTypes_Tree, Ontology, Term } from './Database.fs.js';
import { ParentTermQueryResults, ParentTermQuery } from './DTOs/ParentTermQuery.fs.js';
import { AdvancedSearchQuery } from './DTOs/AdvancedSearch.fs.js';
import { TypeInfo } from '@fable-org/fable-library-js/Reflection.js';
/**
 * (|Regex|_|) pattern input
 */
export declare function Regex_$007CRegex$007C_$007C(pattern: string, input: string): Option<any>;
export declare function Route_builder(typeName: string, methodName: string): string;
export declare function SorensenDice_createBigrams(s: string): FSharpSet<string>;
export declare function SorensenDice_sortBySimilarity<a>(searchStr: string, f: ((arg0: a) => string), arrayToSort: a[]): a[];
export declare class IOntologyAPIv3 extends Record {
    readonly getTestNumber: (() => Async<int32>);
    readonly searchTerm: ((arg0: TermQuery) => Async<Term[]>);
    readonly searchTerms: ((arg0: TermQuery[]) => Async<TermQueryResults[]>);
    readonly getTermById: ((arg0: string) => Async<Option<Term>>);
    readonly searchChildTerms: ((arg0: ParentTermQuery) => Async<ParentTermQueryResults>);
    readonly searchTermAdvanced: ((arg0: AdvancedSearchQuery) => Async<Term[]>);
    constructor(getTestNumber: (() => Async<int32>), searchTerm: ((arg0: TermQuery) => Async<Term[]>), searchTerms: ((arg0: TermQuery[]) => Async<TermQueryResults[]>), getTermById: ((arg0: string) => Async<Option<Term>>), searchChildTerms: ((arg0: ParentTermQuery) => Async<ParentTermQueryResults>), searchTermAdvanced: ((arg0: AdvancedSearchQuery) => Async<Term[]>));
}
export declare function IOntologyAPIv3_$reflection(): TypeInfo;
export declare class ITestAPI extends Record {
    readonly test: (() => Async<[string, string]>);
    readonly postTest: ((arg0: string) => Async<[string, string]>);
    constructor(test: (() => Async<[string, string]>), postTest: ((arg0: string) => Async<[string, string]>));
}
export declare function ITestAPI_$reflection(): TypeInfo;
export declare class IServiceAPIv1 extends Record {
    readonly getAppVersion: (() => Async<string>);
    constructor(getAppVersion: (() => Async<string>));
}
export declare function IServiceAPIv1_$reflection(): TypeInfo;
export declare class ITemplateAPIv1 extends Record {
    readonly getTemplates: (() => Async<string>);
    readonly getTemplateById: ((arg0: string) => Async<string>);
    constructor(getTemplates: (() => Async<string>), getTemplateById: ((arg0: string) => Async<string>));
}
export declare function ITemplateAPIv1_$reflection(): TypeInfo;
export declare const SwateObsolete_Regex_Pattern_TermAnnotationShortPattern = "(?<idspace>\\w+?):(?<localid>\\w+)";
export declare const SwateObsolete_Regex_Pattern_TermAnnotationURIPattern = ".*\\/(?<idspace>\\w+?)[:_](?<localid>\\w+)";
export declare function SwateObsolete_Regex_parseSquaredTermNameBrackets(headerStr: string): Option<string>;
export declare function SwateObsolete_Regex_parseCoreName(headerStr: string): Option<string>;
/**
 * This function can be used to extract `IDSPACE:LOCALID` (or: `Term Accession` from Swate header strings or obofoundry conform URI strings.
 */
export declare function SwateObsolete_Regex_parseTermAccession(headerStr: string): Option<string>;
export declare function SwateObsolete_Regex_parseDoubleQuotes(headerStr: string): Option<string>;
export declare function SwateObsolete_Regex_getId(headerStr: string): Option<string>;
export declare class SwateObsolete_TermMinimal extends Record implements IEquatable<SwateObsolete_TermMinimal>, IComparable<SwateObsolete_TermMinimal> {
    readonly Name: string;
    readonly TermAccession: string;
    constructor(Name: string, TermAccession: string);
}
export declare function SwateObsolete_TermMinimal_$reflection(): TypeInfo;
export declare function SwateObsolete_TermMinimal_create(name: string, tan: string): SwateObsolete_TermMinimal;
export declare class SwateObsolete_TermSearchable extends Record implements IEquatable<SwateObsolete_TermSearchable>, IComparable<SwateObsolete_TermSearchable> {
    readonly Term: SwateObsolete_TermMinimal;
    readonly ParentTerm: Option<SwateObsolete_TermMinimal>;
    readonly IsUnit: boolean;
    readonly ColIndex: int32;
    readonly RowIndices: int32[];
    readonly SearchResultTerm: Option<Term>;
    constructor(Term: SwateObsolete_TermMinimal, ParentTerm: Option<SwateObsolete_TermMinimal>, IsUnit: boolean, ColIndex: int32, RowIndices: int32[], SearchResultTerm: Option<Term>);
}
export declare function SwateObsolete_TermSearchable_$reflection(): TypeInfo;
export declare class IOntologyAPIv1 extends Record {
    readonly getTestNumber: (() => Async<int32>);
    readonly getAllOntologies: (() => Async<Ontology[]>);
    readonly getTermSuggestions: ((arg0: [int32, string]) => Async<Term[]>);
    readonly getTermSuggestionsByParentTerm: ((arg0: [int32, string, SwateObsolete_TermMinimal]) => Async<Term[]>);
    readonly getAllTermsByParentTerm: ((arg0: SwateObsolete_TermMinimal) => Async<Term[]>);
    readonly getTermSuggestionsByChildTerm: ((arg0: [int32, string, SwateObsolete_TermMinimal]) => Async<Term[]>);
    readonly getAllTermsByChildTerm: ((arg0: SwateObsolete_TermMinimal) => Async<Term[]>);
    readonly getTermsForAdvancedSearch: ((arg0: AdvancedSearchQuery) => Async<Term[]>);
    readonly getUnitTermSuggestions: ((arg0: [int32, string]) => Async<Term[]>);
    readonly getTermsByNames: ((arg0: SwateObsolete_TermSearchable[]) => Async<SwateObsolete_TermSearchable[]>);
    readonly getTreeByAccession: ((arg0: string) => Async<TreeTypes_Tree>);
    constructor(getTestNumber: (() => Async<int32>), getAllOntologies: (() => Async<Ontology[]>), getTermSuggestions: ((arg0: [int32, string]) => Async<Term[]>), getTermSuggestionsByParentTerm: ((arg0: [int32, string, SwateObsolete_TermMinimal]) => Async<Term[]>), getAllTermsByParentTerm: ((arg0: SwateObsolete_TermMinimal) => Async<Term[]>), getTermSuggestionsByChildTerm: ((arg0: [int32, string, SwateObsolete_TermMinimal]) => Async<Term[]>), getAllTermsByChildTerm: ((arg0: SwateObsolete_TermMinimal) => Async<Term[]>), getTermsForAdvancedSearch: ((arg0: AdvancedSearchQuery) => Async<Term[]>), getUnitTermSuggestions: ((arg0: [int32, string]) => Async<Term[]>), getTermsByNames: ((arg0: SwateObsolete_TermSearchable[]) => Async<SwateObsolete_TermSearchable[]>), getTreeByAccession: ((arg0: string) => Async<TreeTypes_Tree>));
}
export declare function IOntologyAPIv1_$reflection(): TypeInfo;
export declare class IOntologyAPIv2 extends Record {
    readonly getTestNumber: (() => Async<int32>);
    readonly getAllOntologies: (() => Async<Ontology[]>);
    readonly getTermSuggestions: ((arg0: {
        n: int32;
        ontology?: string;
        query: string;
    }) => Async<Term[]>);
    readonly getTermSuggestionsByParentTerm: ((arg0: {
        n: int32;
        parent_term: SwateObsolete_TermMinimal;
        query: string;
    }) => Async<Term[]>);
    readonly getAllTermsByParentTerm: ((arg0: SwateObsolete_TermMinimal) => Async<Term[]>);
    readonly getTermSuggestionsByChildTerm: ((arg0: {
        child_term: SwateObsolete_TermMinimal;
        n: int32;
        query: string;
    }) => Async<Term[]>);
    readonly getAllTermsByChildTerm: ((arg0: SwateObsolete_TermMinimal) => Async<Term[]>);
    readonly getTermsForAdvancedSearch: ((arg0: AdvancedSearchQuery) => Async<Term[]>);
    readonly getUnitTermSuggestions: ((arg0: {
        n: int32;
        query: string;
    }) => Async<Term[]>);
    readonly getTermsByNames: ((arg0: SwateObsolete_TermSearchable[]) => Async<SwateObsolete_TermSearchable[]>);
    readonly getTreeByAccession: ((arg0: string) => Async<TreeTypes_Tree>);
    constructor(getTestNumber: (() => Async<int32>), getAllOntologies: (() => Async<Ontology[]>), getTermSuggestions: ((arg0: {
        n: int32;
        ontology?: string;
        query: string;
    }) => Async<Term[]>), getTermSuggestionsByParentTerm: ((arg0: {
        n: int32;
        parent_term: SwateObsolete_TermMinimal;
        query: string;
    }) => Async<Term[]>), getAllTermsByParentTerm: ((arg0: SwateObsolete_TermMinimal) => Async<Term[]>), getTermSuggestionsByChildTerm: ((arg0: {
        child_term: SwateObsolete_TermMinimal;
        n: int32;
        query: string;
    }) => Async<Term[]>), getAllTermsByChildTerm: ((arg0: SwateObsolete_TermMinimal) => Async<Term[]>), getTermsForAdvancedSearch: ((arg0: AdvancedSearchQuery) => Async<Term[]>), getUnitTermSuggestions: ((arg0: {
        n: int32;
        query: string;
    }) => Async<Term[]>), getTermsByNames: ((arg0: SwateObsolete_TermSearchable[]) => Async<SwateObsolete_TermSearchable[]>), getTreeByAccession: ((arg0: string) => Async<TreeTypes_Tree>));
}
export declare function IOntologyAPIv2_$reflection(): TypeInfo;
//# sourceMappingURL=Shared.fs.d.ts.map