import { InsertColumnsBuilder } from "./insert-columns-builder";
import { DatabaseBase } from "../../definitions/database-definition";
import { CrudBase } from "../crud-base";
import { InsertBuilder } from "./insert-builder";
import { MapperTable } from "../../mapper-table";
import { QueryCompiled } from "../../core";
import { ValueTypeToParse } from "../../core/utils";
import { ConfigDatabase } from "../config-database";
export declare class Insert<T> extends CrudBase<T, InsertBuilder<T>, InsertColumnsBuilder<T>> {
    constructor(typeT: new () => T, { toSave, mapperTable, alias, database, enableLog, config, }: {
        toSave?: T | Array<T>;
        mapperTable: MapperTable;
        alias?: string;
        database?: DatabaseBase;
        enableLog?: boolean;
        config: ConfigDatabase;
    });
    columns(columnsCallback: (columns: InsertColumnsBuilder<T>) => void): Insert<T>;
    protected compileValuesDependency(dependency: MapperTable, valuesDependencyArray: ValueTypeToParse[][], fieldReferenceSubItem: string): QueryCompiled[];
    private createDependencyListSimpleModel;
    protected resolveDependency(dependency: MapperTable): QueryCompiled;
}
