import { AnyValueSource, __AggregatedArrayColumns, ValueType } from "../expressions/values";
import type { TypeAdapter } from "../TypeAdapter";
import { ITableOrView } from "../utils/ITableOrView";
import { AbstractMySqlMariaDBSqlBuilder } from "./AbstractMySqlMariaBDSqlBuilder";
import { InsertData, SelectData, ToSql, WithQueryData } from "./SqlBuilder";
export declare class MySqlSqlBuilder extends AbstractMySqlMariaDBSqlBuilder {
    mySql: true;
    _getUuidStrategy(): 'string' | 'binary';
    _isReservedKeyword(word: string): boolean;
    _buildInsertReturning(_query: InsertData, params: any[]): string;
    _appendParam(value: any, params: any[], columnType: ValueType, columnTypeName: string, typeAdapter: TypeAdapter | undefined, forceTypeCast: boolean): string;
    _appendColumnValue(value: AnyValueSource, params: any[], isOutermostQuery: boolean): string;
    _asString(params: any[], valueSource: ToSql): string;
    _appendAggragateArrayColumns(aggregatedArrayColumns: __AggregatedArrayColumns | AnyValueSource, aggregatedArrayDistinct: boolean, params: any[], _query: SelectData | undefined): string;
    _appendAggragateArrayWrappedColumns(aggregatedArrayColumns: __AggregatedArrayColumns | AnyValueSource, _params: any[], aggregateId: number): string;
    _buildWith(withData: WithQueryData, params: any[]): string;
    _appendTableOrViewNameForFrom(table: ITableOrView<any>, params: any[]): string;
    _appendTableOrViewNoAliasForFrom(table: ITableOrView<any>, params: any[]): string;
    _setSafeTableOrView(params: any[], tableOrView: ITableOrView<any> | undefined): void;
}
