import { BooleanField, type BooleanFieldConfig, booleanFieldConfigSchema } from "./BooleanField";
import { DateField, type DateFieldConfig, dateFieldConfigSchema } from "./DateField";
import { EnumField, type EnumFieldConfig, enumFieldConfigSchema } from "./EnumField";
import { JsonField, type JsonFieldConfig, jsonFieldConfigSchema } from "./JsonField";
import { JsonSchemaField, type JsonSchemaFieldConfig, jsonSchemaFieldConfigSchema } from "./JsonSchemaField";
import { NumberField, type NumberFieldConfig, numberFieldConfigSchema } from "./NumberField";
import { PrimaryField, type PrimaryFieldConfig, primaryFieldConfigSchema } from "./PrimaryField";
import { TextField, type TextFieldConfig, textFieldConfigSchema } from "./TextField";
export { PrimaryField, primaryFieldConfigSchema, type PrimaryFieldConfig, BooleanField, booleanFieldConfigSchema, type BooleanFieldConfig, DateField, dateFieldConfigSchema, type DateFieldConfig, EnumField, enumFieldConfigSchema, type EnumFieldConfig, JsonField, jsonFieldConfigSchema, type JsonFieldConfig, JsonSchemaField, jsonSchemaFieldConfigSchema, type JsonSchemaFieldConfig, NumberField, numberFieldConfigSchema, type NumberFieldConfig, TextField, textFieldConfigSchema, type TextFieldConfig, };
export * from "./Field";
export * from "./PrimaryField";
export * from "./VirtualField";
export * from "./indices/EntityIndex";
export declare const FieldClassMap: {
    readonly primary: {
        readonly schema: import("@sinclair/typebox").TObject<{
            default_value: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
            description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
            label: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
            fillable: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"create" | "read" | "update" | "delete">>]>>;
            hidden: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
            virtual: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
            required: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TLiteral<false>>;
            format: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnsafe<"uuid" | "integer">>;
        }>;
        readonly field: typeof PrimaryField;
    };
    readonly text: {
        readonly schema: import("@sinclair/typebox").TObject<{
            default_value: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TAny]>>;
            minLength: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
            maxLength: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
            pattern: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
            html_config: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
                element: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
                props: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{}>>;
            }>>;
            required: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
            description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
            label: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
            fillable: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"create" | "read" | "update" | "delete">>]>>;
            hidden: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
            virtual: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
        }>;
        readonly field: typeof TextField;
    };
    readonly number: {
        readonly schema: import("@sinclair/typebox").TObject<{
            default_value: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TAny]>>;
            minimum: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
            maximum: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
            exclusiveMinimum: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
            exclusiveMaximum: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
            multipleOf: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
            required: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
            description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
            label: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
            fillable: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"create" | "read" | "update" | "delete">>]>>;
            hidden: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
            virtual: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
        }>;
        readonly field: typeof NumberField;
    };
    readonly boolean: {
        readonly schema: import("@sinclair/typebox").TObject<{
            default_value: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TAny]>>;
            required: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
            description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
            label: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
            fillable: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"create" | "read" | "update" | "delete">>]>>;
            hidden: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
            virtual: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
        }>;
        readonly field: typeof BooleanField;
    };
    readonly date: {
        readonly schema: import("@sinclair/typebox").TObject<{
            type: import("@sinclair/typebox").TUnsafe<"date" | "week" | "datetime">;
            timezone: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
            min_date: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
            max_date: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
            default_value: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
            required: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
            description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
            label: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
            fillable: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"create" | "read" | "update" | "delete">>]>>;
            hidden: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
            virtual: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
        }>;
        readonly field: typeof DateField;
    };
    readonly enum: {
        readonly schema: import("@sinclair/typebox").TObject<{
            default_value: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TIntersect<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TAny]>>;
            options: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
                type: import("@sinclair/typebox").TLiteral<"strings">;
                values: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
            }>, import("@sinclair/typebox").TObject<{
                type: import("@sinclair/typebox").TLiteral<"objects">;
                values: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
                    label: import("@sinclair/typebox").TString;
                    value: import("@sinclair/typebox").TString;
                }>>;
            }>]>>;
            required: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
            description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
            label: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
            fillable: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"create" | "read" | "update" | "delete">>]>>;
            hidden: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
            virtual: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
        }>;
        readonly field: typeof EnumField;
    };
    readonly json: {
        readonly schema: import("@sinclair/typebox").TObject<{
            default_value: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
            required: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
            description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
            label: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
            fillable: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"create" | "read" | "update" | "delete">>]>>;
            hidden: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
            virtual: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
        }>;
        readonly field: typeof JsonField;
    };
    readonly jsonschema: {
        readonly schema: import("@sinclair/typebox").TObject<{
            schema: import("@sinclair/typebox").TObject<{}>;
            ui_schema: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{}>>;
            default_from_schema: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
            default_value: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
            required: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
            description: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
            label: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
            fillable: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"create" | "read" | "update" | "delete">>]>>;
            hidden: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TUnsafe<"form" | "table" | "create" | "read" | "update" | "delete" | "submit">>]>>;
            virtual: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
        }>;
        readonly field: typeof JsonSchemaField;
    };
};
export { fieldTestSuite } from "./field-test-suite";
