import { z } from "zod"; import type { FieldConfig } from "./types.js"; import type { IFieldBuilderRegistry } from "./abstractions.js"; export declare abstract class FieldBuilder { protected config: Partial; protected zodSchema: TZod; constructor(type: string, initialSchema: TZod); label(text: string): this; help(text: string): this; placeholder(text: string): this; toConfig(): FieldConfig; getZodSchema(): TZod; } export declare class TextFieldBuilder extends FieldBuilder { constructor(schema?: TZod); required(message?: string): TextFieldBuilder; minLength(length: number, message?: string): this; maxLength(length: number, message?: string): this; slug(): this; email(): this; url(): this; private addStringValidator; unique(): this; } export declare class ObjectFieldBuilder extends FieldBuilder> { private readonly nestedFields; constructor(fields: (registry: IFieldBuilderRegistry) => { [K in keyof TShape]: FieldBuilder; }, registry: IFieldBuilderRegistry); optional(): ObjectFieldBuilder & { getZodSchema(): z.ZodOptional>; }; nullable(): ObjectFieldBuilder & { getZodSchema(): z.ZodNullable>; }; toConfig(): FieldConfig; }