import { z } from "zod"; import type { FieldBuilder } from "./FieldBuilder.js"; import type { IFieldBuilderRegistry } from "./abstractions.js"; import type { FieldConfig, FieldBuilderConfig } from "./types.js"; export declare class FieldDefinitionsBuilder { private registry; private fields; constructor(registry: IFieldBuilderRegistry); field(name: K, configure: (field: IFieldBuilderRegistry) => FieldBuilder): FieldDefinitionsBuilder>; __fromObject>>(shape: TShape): FieldDefinitionsBuilder<{ [K in keyof TShape]: ReturnType; }>; private registerField; __toZodSchema(): z.ZodObject; __getFields(): FieldConfig[]; __getFieldsMap(): Map; } export declare function createFieldDefinitions>>(factory: (fields: IFieldBuilderRegistry) => TShape): FieldDefinitionsFactory<{ [K in keyof TShape]: ReturnType; }>; export interface FieldDefinitionsFactory { __type: "FieldDefinitionsFactory"; factory: (fields: IFieldBuilderRegistry) => Record>; } export type InferFieldSchema = T extends FieldDefinitionsFactory ? z.ZodObject : never;