import type { VariableTerm } from "sparqljs";
import type { EngineTriple } from "../../../types.ts";
export declare const SES_search = "https://callidon.github.io/sparql-engine/search#search";
export declare const SES_matchAllTerms = "https://callidon.github.io/sparql-engine/search#matchAllTerms";
export declare const SES_minRelevance = "https://callidon.github.io/sparql-engine/search#minRelevance";
export declare const SES_maxRelevance = "https://callidon.github.io/sparql-engine/search#maxRelevance";
export declare const SES_minRank = "https://callidon.github.io/sparql-engine/search#minRank";
export declare const SES_maxRank = "https://callidon.github.io/sparql-engine/search#maxRank";
export declare const SES_relevance = "https://callidon.github.io/sparql-engine/search#relevance";
export declare const SES_rank = "https://callidon.github.io/sparql-engine/search#rank";
/**
 * A Full Text Search query
 */
export interface FullTextSearchQuery {
    /** The pattern queried by the full text search */
    pattern: EngineTriple;
    /** The SPARQL varibale on which the full text search is performed */
    variable: VariableTerm;
    /** The magic triples sued to configured the full text search query */
    magicTriples: EngineTriple[];
}
/**
 * The results of extracting full text search queries from a BGP
 */
export interface ExtractionResults {
    /** The set of full text search queries extracted from the BGP */
    queries: FullTextSearchQuery[];
    /** Regular triple patterns, i.e., those who should be evaluated as a regular BGP */
    classicPatterns: EngineTriple[];
}
/**
 * Extract all full text search queries from a BGP, using magic triples to identify them.
 * A magic triple is an IRI prefixed by 'https://callidon.github.io/sparql-engine/search#' (ses:search, ses:rank, ses:minRank, etc).
 * @param bgp - BGP to analyze
 * @return The extraction results
 */
export declare function extractFullTextSearchQueries(bgp: EngineTriple[]): ExtractionResults;
