import { Datastore } from '@google-cloud/datastore'; import * as t from 'io-ts'; import { Context } from '../datastore/context'; import { Index } from '../datastore/loader'; import { Repository, RepositoryOptions } from '../datastore/repository'; import { Omit } from '../util/types'; import { Page, SearchFields, SearchResults, SearchService, Sort } from './search.service'; interface SearchableRepositoryOptions extends RepositoryOptions { searchIndex: Index>; } export declare class SearchableRepository extends Repository { protected readonly searchService: SearchService; protected readonly options: SearchableRepositoryOptions; private baseLogger; constructor(datastore: Datastore, searchService: SearchService, kind: string, validator: t.Type, options: SearchableRepositoryOptions); save(context: Context, entities: T): Promise; save(context: Context, entities: ReadonlyArray): Promise>; update(context: Context, entities: T): Promise; update(context: Context, entities: ReadonlyArray): Promise>; insert(context: Context, entities: T): Promise; insert(context: Context, entities: ReadonlyArray): Promise>; upsert(context: Context, entities: T): Promise; upsert(context: Context, entities: ReadonlyArray): Promise>; delete(context: Context, ...ids: string[]): Promise; deleteAll(context: Context): Promise; search(context: Context, searchFields: SearchFields, sort?: Sort): Promise; searchWithPagination(context: Context, searchFields: SearchFields, sort?: Sort, page?: Page): Promise>; reindex(context: Context, operation?: (input: T) => T | Promise): Promise; private index; private fetchResults; } export {};