import { ChangeEvent } from "react"; import type { UseFieldOptions } from "form-atoms"; import { FieldProps, type UseOptionsProps } from ".."; import type { ZodField, ZodFieldValue } from "../../fields"; /** * This restricts ZodField to have optional schema defaulting to 'undefined of required schema'. */ export type SelectField = ZodField; export type SelectFieldProps = UseSelectFieldProps & FieldProps; export type UseSelectFieldProps = { field: Field; getValue: (option: Option) => NonNullable>; } & Pick, "options">; /** * When field is empty, we map the undefined from data layer to -1 on presentation (UI) layer. */ export declare const EMPTY_SELECT_VALUE = -1; export declare const useSelectFieldProps: ({ field, options, getValue }: UseSelectFieldProps, fieldOptions?: UseFieldOptions>) => { value: number; id: string; name: string | undefined; required: boolean; "aria-required": boolean; "aria-invalid": boolean | undefined; ref: (args_0: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | ((value: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | null) => HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement | null) | null) => void; onBlur(): void; onChange(event: ChangeEvent): void; };