import { ToSql, SelectData, InsertData, UpdateData, DeleteData, OrderByEntry } from "./SqlBuilder";
import type { TypeAdapter } from "../TypeAdapter";
import { AnyValueSource, __AggregatedArrayColumns, ValueType } from "../expressions/values";
import { AbstractSqlBuilder } from "./AbstractSqlBuilder";
import { Column } from "../utils/Column";
import { ITableOrView } from "../utils/ITableOrView";
export declare class AbstractMySqlMariaDBSqlBuilder extends AbstractSqlBuilder {
    constructor();
    _insertSupportWith: boolean;
    _forceAsIdentifier(identifier: string): string;
    _buildSelectOrderBy(query: SelectData, params: any[]): string;
    _buildAggregateArrayOrderBy(query: SelectData, params: any[], addSpace: boolean): string;
    _appendOrderByColumnExpressionInsensitive(entry: OrderByEntry, query: SelectData, params: any[]): string;
    _appendOrderByColumnExpression(entry: OrderByEntry, query: SelectData, params: any[]): string;
    _buildSelectLimitOffset(query: SelectData, params: any[]): string;
    _buildInsertDefaultValues(query: InsertData, params: any[]): string;
    _buildInsertOutput(_query: InsertData, _params: any[]): string;
    _buildInsertOnConflictBeforeInto(query: InsertData, _params: any[]): string;
    _buildInsertOnConflictBeforeReturning(query: InsertData, params: any[]): string;
    _appendRawColumnNameForValuesForInsert(column: Column, _params: any[]): string;
    _appendColumnNameForUpdate(column: Column, params: any[]): string;
    _buildAfterUpdateTable(query: UpdateData, params: any[]): string;
    _buildUpdateFrom(_query: UpdateData, _updatePrimaryKey: boolean, _requiredTables: Set<ITableOrView<any>> | undefined, _requiredColumns: Set<Column> | undefined, _params: any[]): string;
    _buidDeleteUsing(query: DeleteData, params: any[]): string;
    _is(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
    _isNot(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
    _divide(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
    _asDouble(params: any[], valueSource: ToSql): string;
    _valueWhenNull(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
    _escapeLikeWildcard(params: any[], value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
    _startsWith(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
    _notStartsWith(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
    _endsWith(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
    _notEndsWith(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
    _startsWithInsensitive(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
    _notStartsWithInsensitive(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
    _endsWithInsensitive(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
    _notEndsWithInsensitive(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
    _contains(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
    _notContains(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
    _containsInsensitive(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
    _notContainsInsensitive(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
    _concat(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
    _appendMaybeInnerConcat(valueSource: AnyValueSource, params: any[]): string;
    _log10(params: any[], valueSource: ToSql): string;
    _cbrt(params: any[], valueSource: ToSql): string;
    _logn(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
    _getDate(params: any[], valueSource: ToSql): string;
    _getTime(params: any[], valueSource: ToSql): string;
    _getFullYear(params: any[], valueSource: ToSql): string;
    _getMonth(params: any[], valueSource: ToSql): string;
    _getDay(params: any[], valueSource: ToSql): string;
    _getHours(params: any[], valueSource: ToSql): string;
    _getMinutes(params: any[], valueSource: ToSql): string;
    _getSeconds(params: any[], valueSource: ToSql): string;
    _getMilliseconds(params: any[], valueSource: ToSql): string;
    _stringConcat(params: any[], separator: string | undefined, value: any): string;
    _stringConcatDistinct(params: any[], separator: string | undefined, value: any): string;
    _in(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
    _notIn(params: any[], valueSource: ToSql, value: any, columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined): string;
    _appendAggragateArrayColumns(aggregatedArrayColumns: __AggregatedArrayColumns | AnyValueSource, aggregatedArrayDistinct: boolean, params: any[], _query: SelectData | undefined): string;
    _appendAggragateArrayWrappedColumns(aggregatedArrayColumns: __AggregatedArrayColumns | AnyValueSource, _params: any[], aggregateId: number): string;
}
