import { RxServer } from './rx-server'; import type { RxServerAuthData, RxServerEndpoint } from './types'; import { MangoQuerySelector, RxDocumentData } from 'rxdb/plugins/core'; export declare function setCors(server: RxServer, path: string, cors?: string): void; export declare function getAuthDataByRequest(server: RxServer, request: RequestType, response: ResponseType): Promise | false>; export declare function getDocAllowedMatcher(endpoint: RxServerEndpoint, authData: RxServerAuthData): import("rxdb/plugins/core").QueryMatcher>; export declare function docContainsServerOnlyFields(serverOnlyFields: string[], doc: any): string | undefined; /** * Returns a function that strips the given server-only fields from a client * document. This is used when accepting a NEW document from a client write to * make sure that server-only fields cannot be populated by the client. * * Unlike {@link removeServerOnlyFieldsMonad} this does not assign undefined to * RxDB internal meta fields (`_meta`, `_rev`, `_attachments`) so the result can * be safely passed to `RxCollection.insert()`. */ export declare function stripServerOnlyFieldsMonad(serverOnlyFields: string[]): (docData: RxDocType | RxDocumentData) => any; export declare function removeServerOnlyFieldsMonad(serverOnlyFields: string[]): (docData?: RxDocType | RxDocumentData) => any; export declare function mergeServerDocumentFieldsMonad(serverOnlyFields: string[]): (clientDoc: RxDocType | RxDocumentData, serverDoc?: RxDocType | RxDocumentData) => RxDocType; /** * $regex queries are dangerous because they can dos-attack the server. * * @param selector */ export declare function doesContainRegexQuerySelector(selector: MangoQuerySelector | any): boolean;