///
/**
* super-orm
*
* @author Zongmin Lei
*/
import createDebug = require("debug");
import mysql = require("mysql");
import { Callback, KVObject } from "./define";
declare module "mysql" {
function escapeId(value: string): string;
}
export * from "lei-utils";
/**
* 根据指定名称生成 debug 函数
* @param name 名称
*/
export declare function debug(name: string): createDebug.IDebugger;
export declare const modelDebug: createDebug.IDebugger;
export declare const schemaDebug: createDebug.IDebugger;
export declare const connectionDebug: createDebug.IDebugger;
export declare const managerDebug: createDebug.IDebugger;
export declare const cacheDebug: createDebug.IDebugger;
export declare const queryDebug: createDebug.IDebugger;
export declare const otherDebug: createDebug.IDebugger;
export declare const sqlEscape: typeof mysql.escape;
export declare const sqlEscapeId: typeof mysql.escapeId;
export declare const sqlFormat: typeof mysql.format;
/**
* 如果传入的 callback 参数不存在,尝试创建支持 Promise 的回调函数
* @param callback 回调函数
*/
export declare function wrapCallback(callback?: Callback): Callback;
/**
* 返回格式化后的 SQL 语句
* 格式: SELECT * FROM ::table WHERE `title`=:title
* @param sql SQL 模板语句
* @param values 参数对象
* @param disable$ 是否没有 $ 开头的 key
*/
export declare function sqlFormatObject(sql: string, values: KVObject, disable$?: boolean): string;
/**
* 判断是否为 Connection 实例
* @param conn 任意对象
*/
export declare function isConnectionInstance(conn: any): boolean;
/**
* 判断是否为 Cache 实例
* @param cache 任意对象
*/
export declare function isCacheInstance(cache: any): boolean;
/**
* 返回根据对象生成的 SQL UPDATE 语句
* @param data 键值对对象
*/
export declare function sqlUpdateString(data: KVObject): string;
/**
* 返回生成 SQL LIMIT 语句
* @param skip 跳过的行数
* @param limit 返回的行数
*/
export declare function sqlLimitString(skip: number, limit: number): string;
/**
* 判断是否为更新操作的 SQL
* @param sql SQL 语句
*/
export declare function isUpdateSQL(sql: string): boolean;
/**
* 合并多段文本
* @param strs 文本数组
*/
export declare function joinMultiString(...strs: string[]): string;
/**
* 判断是否每个键都存在
*/
export declare function everyFieldExists(data: KVObject, fields: string[]): boolean;