import { adapterFields } from '@palmares/databases';
import { fieldParser } from './field';
import type { Field } from '@palmares/databases';
/**
 * This class is used to translate the fields of a model to the attributes of a Drizzle model.
 * This is closely tied to the engine itself because sometimes we might need the models after it was translated
 * or sometimes we need to translate stuff outside of the fields for example the indexes that are from the model
 * itself.
 */
export declare const fields: typeof import("@palmares/databases").AdapterFields & (new () => import("@palmares/databases").AdapterFields & {
    fieldsParser: import("@palmares/databases").AdapterFieldParser & {
        translate: (args: import("@palmares/databases").AdapterFieldParserTranslateArgs<any, any, any, any, {
            type?: string;
        } & import("./types").CustomArgs<import("drizzle-orm/pg-core").PgBigIntConfig<"number" | "bigint"> | import("drizzle-orm/pg-core").PgBigSerialConfig<"number" | "bigint"> | readonly [string, ...string[]] | [string, ...string[]] | import("drizzle-orm/pg-core").PgCharConfig<readonly [string, ...string[]] | [string, ...string[]]> | import("drizzle-orm/pg-core").PgDateConfig<"string" | "date"> | {
            precision: number;
            scale?: number;
        } | {
            precision?: number;
            scale: number;
        } | {
            precision: number;
            scale: number;
        } | import("drizzle-orm/pg-core").IntervalConfig | import("drizzle-orm/pg-core").PgLineTypeConfig<"tuple" | "abc"> | import("drizzle-orm/pg-core").PgPointConfig<"tuple" | "xy"> | import("drizzle-orm/pg-core").PgTextConfig<readonly [string, ...string[]] | [string, ...string[]]> | import("drizzle-orm/pg-core").TimeConfig | import("drizzle-orm/pg-core").PgTimestampConfig<"string" | "date"> | import("drizzle-orm/pg-core").PgVarcharConfig<readonly [string, ...string[]] | [string, ...string[]]> | import("drizzle-orm/sqlite-core").BlobConfig<"bigint" | "buffer" | "json"> | import("drizzle-orm/sqlite-core").IntegerConfig<"number" | "boolean" | "timestamp" | "timestamp_ms"> | {
            mode?: "json" | undefined;
        } | {
            mode?: "text" | undefined;
            length?: number;
            enum?: readonly [string, ...string[]] | [string, ...string[]] | undefined;
        } | import("drizzle-orm/mysql-core").MySqlBigIntConfig<"number" | "bigint"> | import("drizzle-orm/mysql-core").MySqlBinaryConfig | import("drizzle-orm/mysql-core").MySqlCharConfig<readonly [string, ...string[]] | [string, ...string[]]> | import("drizzle-orm/mysql-core").MySqlDateConfig<"string" | "date"> | import("drizzle-orm/mysql-core").MySqlDatetimeConfig<"string" | "date"> | import("drizzle-orm/mysql-core").MySqlDecimalConfig | import("drizzle-orm/mysql-core").MySqlDoubleConfig | import("drizzle-orm/mysql-core").MySqlFloatConfig | import("drizzle-orm/mysql-core").MySqlIntConfig | import("drizzle-orm/mysql-core").MySqlRealConfig | import("drizzle-orm/mysql-core").MySqlTextConfig<readonly [string, ...string[]] | [string, ...string[]]> | import("drizzle-orm/mysql-core").TimeConfig | import("drizzle-orm/mysql-core").MySqlTimestampConfig<"string" | "date"> | import("drizzle-orm/mysql-core").MySqlVarbinaryOptions | import("drizzle-orm/mysql-core").MySqlVarCharConfig<readonly [string, ...string[]] | [string, ...string[]]> | undefined, any>>) => Promise<string | {
            fieldName: string;
            primaryKey: boolean;
            unique: boolean;
            nullable: boolean;
            dbIndex: boolean;
            default: any;
            autoincrement: boolean;
            databaseName: string | undefined;
            custom: {
                type?: string;
            } & import("./types").CustomArgs<import("drizzle-orm/pg-core").PgBigIntConfig<"number" | "bigint"> | import("drizzle-orm/pg-core").PgBigSerialConfig<"number" | "bigint"> | readonly [string, ...string[]] | [string, ...string[]] | import("drizzle-orm/pg-core").PgCharConfig<readonly [string, ...string[]] | [string, ...string[]]> | import("drizzle-orm/pg-core").PgDateConfig<"string" | "date"> | {
                precision: number;
                scale?: number;
            } | {
                precision?: number;
                scale: number;
            } | {
                precision: number;
                scale: number;
            } | import("drizzle-orm/pg-core").IntervalConfig | import("drizzle-orm/pg-core").PgLineTypeConfig<"tuple" | "abc"> | import("drizzle-orm/pg-core").PgPointConfig<"tuple" | "xy"> | import("drizzle-orm/pg-core").PgTextConfig<readonly [string, ...string[]] | [string, ...string[]]> | import("drizzle-orm/pg-core").TimeConfig | import("drizzle-orm/pg-core").PgTimestampConfig<"string" | "date"> | import("drizzle-orm/pg-core").PgVarcharConfig<readonly [string, ...string[]] | [string, ...string[]]> | import("drizzle-orm/sqlite-core").BlobConfig<"bigint" | "buffer" | "json"> | import("drizzle-orm/sqlite-core").IntegerConfig<"number" | "boolean" | "timestamp" | "timestamp_ms"> | {
                mode?: "json" | undefined;
            } | {
                mode?: "text" | undefined;
                length?: number;
                enum?: readonly [string, ...string[]] | [string, ...string[]] | undefined;
            } | import("drizzle-orm/mysql-core").MySqlBigIntConfig<"number" | "bigint"> | import("drizzle-orm/mysql-core").MySqlBinaryConfig | import("drizzle-orm/mysql-core").MySqlCharConfig<readonly [string, ...string[]] | [string, ...string[]]> | import("drizzle-orm/mysql-core").MySqlDateConfig<"string" | "date"> | import("drizzle-orm/mysql-core").MySqlDatetimeConfig<"string" | "date"> | import("drizzle-orm/mysql-core").MySqlDecimalConfig | import("drizzle-orm/mysql-core").MySqlDoubleConfig | import("drizzle-orm/mysql-core").MySqlFloatConfig | import("drizzle-orm/mysql-core").MySqlIntConfig | import("drizzle-orm/mysql-core").MySqlRealConfig | import("drizzle-orm/mysql-core").MySqlTextConfig<readonly [string, ...string[]] | [string, ...string[]]> | import("drizzle-orm/mysql-core").TimeConfig | import("drizzle-orm/mysql-core").MySqlTimestampConfig<"string" | "date"> | import("drizzle-orm/mysql-core").MySqlVarbinaryOptions | import("drizzle-orm/mysql-core").MySqlVarCharConfig<readonly [string, ...string[]] | [string, ...string[]]> | undefined, any>;
        }>;
        inputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"field" | "auto" | "big-auto" | "big-integer" | "boolean" | "char" | "date" | "decimal" | "enum" | "foreign-key" | "integer" | "text" | "uuid">) => Promise<any>;
        outputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"field" | "auto" | "big-auto" | "big-integer" | "boolean" | "char" | "date" | "decimal" | "enum" | "foreign-key" | "integer" | "text" | "uuid">) => Promise<any>;
    };
    compare: ((_oldCustomArguments: any, _newCustomArguments: any) => boolean) | undefined;
    fieldToString: ((_customArguments: any) => {
        result: string;
        imports: import("@palmares/databases/dist/src/models/fields/types").CustomImportsForFieldType[];
    }) | undefined;
    autoFieldParser: import("@palmares/databases").AdapterIntegerFieldParser & {
        translate: (args: import("@palmares/databases").AdapterFieldParserTranslateArgs<"integer", any, InstanceType<typeof fieldParser>, any, import("./types").CustomArgs<import("drizzle-orm/pg-core").PgBigSerialConfig<"number" | "bigint"> | import("drizzle-orm/sqlite-core").IntegerConfig<"number" | "boolean" | "timestamp" | "timestamp_ms"> | import("drizzle-orm/mysql-core").MySqlIntConfig | undefined, import("drizzle-orm/sqlite-core").SQLiteIntegerBuilderInitial<string> | import("drizzle-orm/pg-core").PgBigSerial53BuilderInitial<string> | import("drizzle-orm/pg-core").PgBigSerial64BuilderInitial<string> | import("drizzle-orm/pg-core").PgIntegerBuilder<{
            name: string;
            dataType: "number";
            columnType: "PgInteger";
            data: number;
            driverParam: number | string;
            enumValues: undefined;
            generated: undefined;
        }>>>) => Promise<string>;
        inputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"integer">) => Promise<any>;
        outputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"integer">) => Promise<any>;
    };
    bigAutoFieldParser: undefined;
    bigIntegerFieldParser: import("@palmares/databases").AdapterBigIntegerFieldParser & {
        translate: (args: import("@palmares/databases").AdapterFieldParserTranslateArgs<"big-integer", any, InstanceType<typeof fieldParser>, any, import("./types").CustomArgs<import("drizzle-orm/pg-core").PgBigIntConfig<"number" | "bigint"> | import("drizzle-orm/pg-core").PgBigSerialConfig<"number" | "bigint"> | import("drizzle-orm/sqlite-core").IntegerConfig<"number" | "boolean" | "timestamp" | "timestamp_ms"> | import("drizzle-orm/mysql-core").MySqlBigIntConfig<"number" | "bigint"> | undefined, import("drizzle-orm/sqlite-core").SQLiteIntegerBuilderInitial<string> | import("drizzle-orm/mysql-core").MySqlBigInt53BuilderInitial<string> | import("drizzle-orm/mysql-core").MySqlBigInt64BuilderInitial<string> | import("drizzle-orm/pg-core").PgBigInt53BuilderInitial<string> | import("drizzle-orm/pg-core").PgBigInt64BuilderInitial<string> | import("drizzle-orm/pg-core").PgBigSerial53BuilderInitial<string> | import("drizzle-orm/pg-core").PgBigSerial64BuilderInitial<string>>>) => Promise<string>;
        inputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"big-integer">) => Promise<any>;
        outputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"big-integer">) => Promise<any>;
    };
    charFieldParser: import("@palmares/databases").AdapterCharFieldParser & {
        translate: (args: import("@palmares/databases").AdapterFieldParserTranslateArgs<"char", any, InstanceType<typeof fieldParser>, any, import("./types").CustomArgs<Parameters<typeof import("drizzle-orm/sqlite-core").text>[1] | Parameters<typeof import("drizzle-orm/mysql-core").varchar>[1] | Parameters<typeof import("drizzle-orm/pg-core").varchar>[1], ReturnType<typeof import("drizzle-orm/mysql-core").varchar> | ReturnType<typeof import("drizzle-orm/sqlite-core").text> | ReturnType<typeof import("drizzle-orm/pg-core").varchar>>>) => Promise<string>;
        inputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"char">) => Promise<any>;
        outputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"char">) => Promise<any>;
    };
    dateFieldParser: import("@palmares/databases").AdapterDateFieldParser & {
        translate: (args: import("@palmares/databases").AdapterFieldParserTranslateArgs<"date", any, InstanceType<typeof fieldParser>, any, import("./types").CustomArgs<Parameters<typeof import("drizzle-orm/sqlite-core").text>[1] | Parameters<typeof import("drizzle-orm/mysql-core").datetime>[1] | Parameters<typeof import("drizzle-orm/pg-core").timestamp>[1], ReturnType<typeof import("drizzle-orm/sqlite-core").text> | ReturnType<typeof import("drizzle-orm/mysql-core").datetime> | ReturnType<typeof import("drizzle-orm/pg-core").timestamp>>>) => Promise<any>;
        inputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"date">) => Promise<any>;
        outputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"date">) => Promise<any>;
    };
    decimalFieldParser: import("@palmares/databases").AdapterDecimalFieldParser & {
        translate: (args: import("@palmares/databases").AdapterFieldParserTranslateArgs<"decimal", any, InstanceType<typeof fieldParser>, any, import("./types").CustomArgs<Parameters<typeof import("drizzle-orm/mysql-core").decimal>[1] | Parameters<typeof import("drizzle-orm/pg-core").numeric>[1], ReturnType<typeof import("drizzle-orm/sqlite-core").real> | ReturnType<typeof import("drizzle-orm/pg-core").numeric> | ReturnType<typeof import("drizzle-orm/sqlite-core").real>>>) => Promise<string>;
        inputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"decimal">) => Promise<any>;
        outputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"decimal">) => Promise<any>;
    };
    foreignKeyFieldParser: import("@palmares/databases").AdapterForeignKeyFieldParser & {
        translate: (args: import("@palmares/databases").AdapterFieldParserTranslateArgs<"foreign-key", any, InstanceType<typeof fieldParser>, any>) => Promise<undefined>;
        inputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"foreign-key">) => Promise<any>;
        outputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"foreign-key">) => Promise<any>;
    };
    integerFieldParser: import("@palmares/databases").AdapterIntegerFieldParser & {
        translate: (args: import("@palmares/databases").AdapterFieldParserTranslateArgs<"integer", any, InstanceType<typeof fieldParser>, any, import("./types").CustomArgs<import("drizzle-orm/pg-core").PgBigSerialConfig<"number" | "bigint"> | import("drizzle-orm/sqlite-core").IntegerConfig<"number" | "boolean" | "timestamp" | "timestamp_ms"> | import("drizzle-orm/mysql-core").MySqlIntConfig | undefined, import("drizzle-orm/sqlite-core").SQLiteIntegerBuilderInitial<string> | import("drizzle-orm/pg-core").PgBigSerial53BuilderInitial<string> | import("drizzle-orm/pg-core").PgBigSerial64BuilderInitial<string> | import("drizzle-orm/pg-core").PgIntegerBuilder<{
            name: string;
            dataType: "number";
            columnType: "PgInteger";
            data: number;
            driverParam: number | string;
            enumValues: undefined;
            generated: undefined;
        }>>>) => Promise<string>;
        inputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"integer">) => Promise<any>;
        outputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"integer">) => Promise<any>;
    };
    textFieldParser: import("@palmares/databases").AdapterTextFieldParser & {
        translate: (args: import("@palmares/databases").AdapterFieldParserTranslateArgs<"text", any, InstanceType<typeof fieldParser>, any, import("./types").CustomArgs<Parameters<typeof import("drizzle-orm/sqlite-core").text>[1] | Parameters<typeof import("drizzle-orm/mysql-core").text>[1] | Parameters<typeof import("drizzle-orm/pg-core").text>[1], ReturnType<typeof import("drizzle-orm/sqlite-core").text> | ReturnType<typeof import("drizzle-orm/mysql-core").text> | ReturnType<typeof import("drizzle-orm/pg-core").text>>>) => Promise<any>;
        inputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"text">) => Promise<any>;
        outputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"text">) => Promise<any>;
    };
    uuidFieldParser: import("@palmares/databases").AdapterUuidFieldParser & {
        translate: (args: import("@palmares/databases").AdapterFieldParserTranslateArgs<"uuid", any, InstanceType<typeof fieldParser>, any, import("./types").CustomArgs<Parameters<typeof import("drizzle-orm/sqlite-core").text>[1] | Parameters<typeof import("drizzle-orm/mysql-core").varchar>[1], ReturnType<typeof import("drizzle-orm/sqlite-core").text> | ReturnType<typeof import("drizzle-orm/pg-core").uuid> | ReturnType<typeof import("drizzle-orm/mysql-core").varchar>>>) => Promise<string>;
        inputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"uuid">) => Promise<any>;
        outputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"uuid">) => Promise<any>;
    };
    enumFieldParser: import("@palmares/databases").AdapterEnumFieldParser & {
        translate: (args: import("@palmares/databases").AdapterFieldParserTranslateArgs<"enum", any, InstanceType<typeof fieldParser>, any>) => Promise<any>;
        inputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"enum">) => Promise<any>;
        outputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"enum">) => Promise<any>;
    };
    customFieldsParser: Record<string, import("@palmares/databases").AdapterFieldParser>;
    booleanFieldParser: import("@palmares/databases").AdapterBooleanFieldParser & {
        translate: (args: import("@palmares/databases").AdapterFieldParserTranslateArgs<"boolean", any, InstanceType<typeof fieldParser>, any, import("./types").CustomArgs<Parameters<typeof import("drizzle-orm/sqlite-core").integer>[1], ReturnType<typeof import("drizzle-orm/mysql-core").boolean> | ReturnType<typeof import("drizzle-orm/pg-core").boolean> | ReturnType<typeof import("drizzle-orm/sqlite-core").integer>>>) => Promise<any>;
        inputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"boolean">) => Promise<any>;
        outputParser: (args: import("@palmares/databases").AdapterFieldParserInputAndOutputArgs<"boolean">) => Promise<any>;
    };
    lazyEvaluateField: (engine: any, modelName: string, translatedModel: any, fieldAttributes: Parameters<Parameters<typeof adapterFields>[0]["lazyEvaluateField"]>[3], fieldTranslated: any, parseAgain: Parameters<Parameters<typeof adapterFields>[0]["lazyEvaluateField"]>[5]) => Promise<any>;
    translateField: ((_Adapter: import("@palmares/databases").DatabaseAdapter, _field: Field, _defaultTranslateFieldCallback: (_field: Field) => Promise<any>) => Promise<any>) | undefined;
});
//# sourceMappingURL=index.d.ts.map