import { ParameterizedSQL } from './parametrized-sql';
import { AnyObject, Filter, ModelDefinition } from '../repository';
import { DbConfig } from '../interfaces/db-config';
export declare class SqlConnector {
    settings: AnyObject;
    _models: AnyObject;
    name: string;
    constructor(_config: DbConfig);
    getPlaceholderForValue(key: number | string): string;
    getCountForAffectedRows(model: any, info: any): any;
    getInsertedId(model: any, info: any): any;
    buildInsertDefaultValues(model: any, data: any, options: any): string;
    idColumnEscaped(model: any): string;
    idColumn(model: any): string;
    buildInsertReturning(model: any, data: any, options: any): ParameterizedSQL;
    dateToOracle(val: any, dateOnly: any): Date | ParameterizedSQL;
    toColumnValue(prop: any, val: any): any;
    fromColumnValue(prop: any, val: any): any;
    dbName(name: string): string;
    escapeName(name: string): string;
    tableEscaped(model: any): string;
    buildLimit(limit: number, offset: number): string;
    applyPagination(model: any, stmt: any, filter: any): any;
    __buildColumnNames(model: any, filter: any): string;
    columnEscaped(model: any, property: any): string;
    buildColumnNames(model: any, filter: any): string;
    buildSelect(model: any, filter: Filter): ParameterizedSQL;
    serializeObject(obj: any): any;
    buildOrderBy(model: any, order: any): string;
    buildWhere(model: any, where: any): ParameterizedSQL;
    _buildWhere(model: any, where: any): ParameterizedSQL;
    parameterize(ps: ParameterizedSQL): ParameterizedSQL;
    idNames(model: any): string[];
    idName(model: any): string[];
    isIdValuePresent(idValue: any): boolean;
    id(model: any, prop: any): number | boolean;
    getModelDefinition(modelName: string | AnyObject): ModelDefinition;
    column(model: string, property: string): any;
    schema(model: any): any;
    getDefaultSchemaName(): string;
    getConnectorSpecificSettings(modelName: string): any;
    table(model: any): any;
    define(modelDefinition: any): void;
    defineProperty(model: any, propertyName: any, propertyDefinition: any): void;
    buildFields(model: any, data: any, excludeIds?: any): {
        names: any[];
        columnValues: any[];
        properties: any[];
    };
    _buildFieldsForKeys(model: any, data: any, keys: any, excludeIds: any): {
        names: any[];
        columnValues: any[];
        properties: any[];
    };
    buildInsertInto(model: any, fields: AnyObject, options: AnyObject): ParameterizedSQL;
    buildInsert(model: any, data: AnyObject, options?: AnyObject): ParameterizedSQL;
    buildExpression(columnName: string, operator: string, columnValue: any, propertyDescriptor: any): ParameterizedSQL;
    __buildExpression(columnName: string, operator: string, columnValue: any, propertyValue: any): ParameterizedSQL;
    getPropertyDefinition(modelName: string, propName: string): import("../repository").PropertyDefinition;
    buildUpdate(model: any, where: any, data: any): ParameterizedSQL;
    _constructUpdateQuery(model: any, where: any, fields: any): ParameterizedSQL;
    buildFieldsForUpdate(model: any, data: any, excludeIds?: any): ParameterizedSQL;
    _constructUpdateParameterizedSQL(fields: any): ParameterizedSQL;
}
