import * as legacy from "../../../core/platform/custom-objects/fields.mjs"; import type { TextFieldDefinition, NumberFieldDefinition, RadioFieldDefinition } from "../../../core/platform/custom-objects/types.mjs"; import { Field, type FieldProps } from "../field.mjs"; import { type ObjectScoped, type ObjectReference, type SectionReference } from "./custom-object.mjs"; export type DefineFieldProps = Omit & { section: SectionReference>; }; export declare function defineField(object: TObject, props: DefineFieldProps): ObjectScoped; /** Field factories for reusable definitions. Existing standalone factories remain available. */ export declare const fields: Readonly & { text: typeof text; number: typeof number; choice: typeof choice; }>; interface Presentation { label: string; description?: string; nullable?: TNullable; section?: TSection; } type Required = TNullable extends true ? false : true; type Rules = { readonly nullable: TNullable; }; declare function text(props: Presentation & { maxLength?: number; unique?: boolean; }): TextFieldDefinition, TSection> & Rules; declare function number(props: Presentation & { decimalPlaces?: number; }): NumberFieldDefinition, TSection> & Rules; declare function choice(props: Presentation & { options: TOptions; }): Omit, TSection>, '__valueType__'> & { readonly __valueType__?: TOptions[number]; } & Rules; export {}; //# sourceMappingURL=field.d.mts.map