export interface IndexEntry { id: string; fields: { [key: string]: any; }; } export interface Sort { field: string; descending?: boolean; } export interface Page { limit: number; offset: number; } export interface QueryResults { resultCount: number; limit: number; offset: number; ids: string[]; } export declare type Operator = "=" | "!=" | ">" | "<" | ">=" | "<="; export interface SearchFields { [key: string]: string | string[] | Predicate | Predicate[]; } export interface Predicate { op: Operator; value: string | string[] | number | Date; } export declare const isPredicate: (value: unknown) => value is Predicate; export declare const isPredicateArray: (value: unknown) => value is Predicate[]; export declare abstract class SearchService { abstract index(indexName: string, entries: IndexEntry[]): Promise; abstract delete(indexName: string, ...ids: string[]): Promise; abstract deleteAll(indexName: string): Promise; abstract query(indexName: string, fields: SearchFields, sort?: Sort, page?: Page): Promise; } //# sourceMappingURL=search.service.d.ts.map