import { PrimaryKeyType } from "./enums/primary-key-type";
import { ExpressionOrColumn, ValueTypeToParse } from "./utils";
import { ColumnsBaseBuilder } from "./columns-base-builder";
import { Column } from "./column";
import { FieldType } from "./enums/field-type";
import { ColumnsCompiled } from "./columns-compiled";
import { MapperTable } from "../mapper-table";
export declare abstract class ColumnsValuesBuilder<T, TThis extends ColumnsValuesBuilder<T, TThis>> extends ColumnsBaseBuilder<TThis, T, Column> {
    constructor(mapperTable: MapperTable, toSave: T | Array<T>);
    protected setColumnValue(column: string, values: Array<ValueTypeToParse>, fieldType: FieldType, primaryKeyType?: PrimaryKeyType): TThis;
    setValue<TReturn extends ValueTypeToParse>(expression: ExpressionOrColumn<TReturn, T>, value: TReturn | Array<TReturn>, primaryKeyType?: PrimaryKeyType): TThis;
    set<TReturn extends ValueTypeToParse>(expression: ExpressionOrColumn<TReturn, T>, primaryKeyType?: PrimaryKeyType): TThis;
    compile(): ColumnsCompiled;
    private resolveNullValueType;
    protected allowGenerateKey(): boolean;
    protected isAddColumn(column: Column): boolean;
    protected columnFormat(column: Column): string;
    protected getValueByExpression<TReturn>(expression: ExpressionOrColumn<TReturn, T>): Array<TReturn>;
}
