/**
 * Ensure that the collection exists and process the query
 * @param {Object} db arangodb connection
 * @param {string} collectionName collection name
 * @param {string} query query string
 * @param {Object} args list of arguments, optional
 * @return {Promise} arangojs query result
 */
export declare const query: (db: any, collectionName: string, query: string | any, args?: object) => Promise<any>;
/**
 * Convert id to arangodb friendly key.
 * @param {string} id document identification
 * @return {any} arangodb friendly key
 */
export declare const idToKey: (id: string) => any;
/**
 * Remove arangodb specific fields.
 * @param {Object} document A document returned from arangodb.
 * @return {Object} A clone of the document without arangodb specific fields.
 */
export declare const sanitizeOutputFields: (document: object) => object;
export declare const sanitizeInputFields: (document: any) => any;
/**
 * Auto-casting reference value by using native function of arangoDB
 *
 * @param {string} key
 * @param {object} value - raw value optional
 * @return {object} interpreted value
 */
export declare const autoCastKey: (key: any, value?: any) => any;
/**
 * Auto-casting raw data
 *
 * @param {object} value - raw value
 * @returns {any} interpreted value
 */
export declare const autoCastValue: (value: any) => any;
/**
 * Links children of filter together via a comparision operator.
 * @param {any} filter
 * @param {string} op comparision operator
 * @param {number} index to keep track of bind variables
 * @param {any} bindVarsMap mapping of keys to values for bind variables
 * @return {any} query template string and bind variables
 */
export declare const buildComparison: (filter: any, op: string, index: number, bindVarsMap: any) => any;
/**
 * Creates a filter key, value.
 * When the value is a string, boolean, number or date a equal comparision is created.
 * Otherwise if the key corresponds to a known operator, the operator is constructed.
 * @param {string} key
 * @param {string|boolean|number|date|object} value
 * @param {number} index to keep track of bind variables
 * @param {any} bindVarsMap mapping of keys to values for bind variables
 * @return {String} query template string
 */
export declare const buildField: (key: any, value: any, index: number, bindVarsMap: any) => string;
/**
 * Build ArangoDB query based on filter.
 * @param {Object} filter key, value tree object.
 * @param {number} index to keep track of bind variables
 * @param {any} bindVarsMap mapping of keys to values for bind variables
 * @return {any} query template string and bind variables
 */
export declare const buildFilter: (filter: any, index?: number, bindVarsMap?: any) => any;
/**
 * Build count and offset filters.
 * @param {Object} options query options
 * @return {String} template query string
 */
export declare const buildLimiter: (options: any) => string;
/**
 * Build sort filter.
 * @param {Object} options query options
 * @param {number} index to keep track of bind variables
 * @param {any} bindVarsMap Object containing bind key to values
 * @return {any} template query string and bind variables Object
 */
export declare const buildSorter: (options: any, index?: number, bindVarsMap?: any) => any;
export declare const buildReturn: (options: any) => any;
export declare const encodeMessage: (object: object) => Buffer;
