import { GroupOperator, Operator } from "@decaf-ts/core";
import { MangoOperator } from "../types.d.cts";
/**
 * @description Translates core operators to CouchDB Mango operators
 * @summary Converts Decaf.ts core operators to their equivalent CouchDB Mango query operators
 * @param {GroupOperator | Operator} operator - The core operator to translate
 * @return {MangoOperator} The equivalent CouchDB Mango operator
 * @throws {QueryError} If no translation exists for the given operator
 * @function translateOperators
 * @memberOf module:for-couchdb
 * @mermaid
 * sequenceDiagram
 *   participant Caller
 *   participant translateOperators
 *   participant CouchDBOperator
 *   participant CouchDBGroupOperator
 *
 *   Caller->>translateOperators: operator
 *
 *   translateOperators->>CouchDBOperator: Check for match
 *   alt Found in CouchDBOperator
 *     CouchDBOperator-->>translateOperators: Return matching operator
 *     translateOperators-->>Caller: Return MangoOperator
 *   else Not found
 *     translateOperators->>CouchDBGroupOperator: Check for match
 *     alt Found in CouchDBGroupOperator
 *       CouchDBGroupOperator-->>translateOperators: Return matching operator
 *       translateOperators-->>Caller: Return MangoOperator
 *     else Not found
 *       translateOperators-->>Caller: Throw QueryError
 *     end
 *   end
 */
export declare function translateOperators(operator: GroupOperator | Operator): MangoOperator;
