import { ILogger } from '../logger'; import { ProviderClient } from '../../types/provider'; declare abstract class SearchService { protected searchClient: ClientProvider; protected storeClient: ClientProvider; protected namespace: string; protected logger: ILogger; protected appId: string; constructor(searchClient: ClientProvider, storeClient?: ClientProvider); abstract init(namespace: string, appId: string, logger: ILogger): Promise; abstract createSearchIndex(indexName: string, prefixes: string[], schema: string[]): Promise; abstract listSearchIndexes(): Promise; abstract setFields(key: string, fields: Record): Promise; abstract updateContext(key: string, fields: Record): Promise; abstract getField(key: string, field: string): Promise; abstract getFields(key: string, fields: string[]): Promise; abstract getAllFields(key: string): Promise>; abstract deleteFields(key: string, fields: string[]): Promise; abstract incrementFieldByFloat(key: string, field: string, increment: number): Promise; abstract sendQuery(query: any): Promise; abstract sendIndexedQuery(index: string, query: any[]): Promise; abstract findEntities(entity: string, conditions: Record, options?: { limit?: number; offset?: number; }): Promise; abstract findEntityById(entity: string, id: string): Promise; abstract findEntitiesByCondition(entity: string, field: string, value: any, operator?: '=' | '!=' | '>' | '<' | '>=' | '<=' | 'LIKE' | 'IN', options?: { limit?: number; offset?: number; }): Promise; abstract createEntityIndex(entity: string, field: string, indexType?: 'btree' | 'gin' | 'gist'): Promise; } export { SearchService };