import type * as Option from "effect/Option" import type * as Schema from "effect/Schema" export type FieldValue = T extends Schema.Schema.Any ? Schema.Schema.Encoded : T export interface FieldState { readonly path: string readonly value: E readonly onChange: (value: E) => void readonly onBlur: () => void readonly error: Option.Option readonly isTouched: boolean readonly isValidating: boolean readonly isDirty: boolean } export interface ArrayFieldOperations { readonly items: ReadonlyArray readonly append: (value?: TItem) => void readonly remove: (index: number) => void readonly swap: (indexA: number, indexB: number) => void readonly move: (from: number, to: number) => void }