import { ArgsDocumentControllerCreate, ArgsDocumentControllerDelete, ArgsDocumentControllerUpdate, Backend, EmbeddedSDK, KDocument, KDocumentContent, KHit, KuzzleRequest, SearchResult, User } from "kuzzle"; import { DeviceManagerPlugin, DeviceManagerConfiguration, InternalCollection } from "../../plugin"; interface PayloadRequest { collection: InternalCollection; engineId: string; } export type SearchParams = ReturnType; export declare abstract class BaseService { private plugin; constructor(plugin: DeviceManagerPlugin); protected get app(): Backend; protected get sdk(): EmbeddedSDK; protected get config(): DeviceManagerConfiguration; protected get impersonatedSdk(): (user: User) => EmbeddedSDK; protected normalizeKuzzleRequest(request: KuzzleRequest, { collection, engineId }: PayloadRequest): KuzzleRequest; /** * Wrapper to SDK create method with trigger generic:document events * * @param {KuzzleRequest} request * @param {KDocument} documentId * @param {PayloadRequest} payload * @param {ArgsDocumentControllerCreate} [options] * @returns {Promise} */ protected getDocument(request: KuzzleRequest, documentId: string, { collection, engineId }: PayloadRequest, options?: ArgsDocumentControllerCreate): Promise>; /** * Wrapper to SDK create method with trigger generic:document events * * @param {KuzzleRequest} request * @param {KDocument} document * @param {PayloadRequest} payload * @param {ArgsDocumentControllerCreate} [options] * @returns {Promise} */ protected createDocument(request: KuzzleRequest, document: KDocument, { collection, engineId }: PayloadRequest, options?: ArgsDocumentControllerCreate): Promise>; /** * Wrapper to SDK update method with trigger generic:document events * * @param {KuzzleRequest} request * @param {KDocument} document * @param {PayloadRequest} payload * @param {ArgsDocumentControllerUpdate} [options] * @returns {Promise} */ protected updateDocument(request: KuzzleRequest, document: KDocument>, { collection, engineId }: PayloadRequest, options?: ArgsDocumentControllerUpdate): Promise>; /** * Wrapper to SDK delete method with trigger generic:document events * * @param {KuzzleRequest} request * @param {string} documentId * @param {PayloadRequest} payload * @param {ArgsDocumentControllerUpdate} [options] * @returns {Promise<{ _id: string }>} */ protected deleteDocument(request: KuzzleRequest, documentId: string, { collection, engineId }: PayloadRequest, options?: ArgsDocumentControllerDelete): Promise<{ _id: string; }>; /** * Wrapper to SDK search method with trigger generic:document events * ! Caution the pipes are not applied on next() * * @param {KuzzleRequest} request * @param {ArgsDocumentControllerUpdate} [options] * @param {PayloadRequest} payload * @returns {Promise>} */ protected searchDocument(request: KuzzleRequest, { from, size, scrollTTL: scroll }: SearchParams, { collection, engineId }: PayloadRequest): Promise>>; } export {};