import type { Term } from '@rdfjs/types'; /** * Declares what kind of RDF object value a predicate stores. * * This is schema data, not a query policy. Query capabilities are derived * from the declared data type: * - text/numeric/dateTime/iri/blankNode/literal with objectKey support * can use exact/prefix/range/order. * - longText is stored for DB-side text search/contains and must not fall * back to in-memory scans for range/order semantics. */ export type PredicateObjectDataType = 'iri' | 'blankNode' | 'text' | 'longText' | 'numeric' | 'dateTime' | 'literal'; export interface PredicateObjectDataTypes { [predicate: string]: PredicateObjectDataType; } export interface ObjectIndexFields { objectKind: PredicateObjectDataType; objectKey: string | null; objectText: string | null; } export interface ObjectIndexOptions { predicate?: string; predicateObjectDataTypes?: PredicateObjectDataTypes; textMaxBytes?: number; } export declare const DEFAULT_TEXT_MAX_BYTES = 2048; export declare function getPredicateObjectDataType(predicate: string | undefined, predicateObjectDataTypes: PredicateObjectDataTypes | undefined): PredicateObjectDataType | undefined; export declare function objectIndexFieldsFromTerm(term: Term, options?: ObjectIndexOptions): ObjectIndexFields; export declare function objectIndexFieldsFromSerialized(serialized: string, options?: ObjectIndexOptions): ObjectIndexFields; export declare function objectIndexFieldsFromOperatorValue(value: unknown, serialized: string, options?: ObjectIndexOptions): ObjectIndexFields; export declare function isObjectValueComparable(fields: ObjectIndexFields): boolean; export declare function literalFromPlainText(value: string): Term;