import type { FormBackend, SetValueOptions } from './types';
/**
 * useArrayField - Hook for array field operations (append, remove, move, insert)
 *
 * @param path - Field path
 * @param backend - Form backend
 * @returns Object with array manipulation functions
 */
export declare function useArrayField(path: string, backend: FormBackend): {
    append: (value: unknown) => void;
    remove: (index: number) => void;
    move: (from: number, to: number) => void;
    insert: (index: number, value: unknown) => void;
};
/**
 * useField - Combined hook for field value, state, and setter
 *
 * This is the recommended hook for form widgets. It provides everything needed
 * for a field in one call, using the unified backend.subscribe API.
 *
 * No branching on backend.type - the backend hides implementation details.
 *
 * @example
 * ```tsx
 * function TextField({ path, backend, field }: FormFieldProps<string>) {
 *   const { value, error, isDirty, setValue } = useField<string>(path, backend)
 *
 *   return (
 *     <input
 *       value={value ?? ''}
 *       onChange={(e) => setValue(e.target.value)}
 *     />
 *   )
 * }
 * ```
 */
export declare function useField<T = unknown>(path: string, backend: FormBackend): {
    value: T | undefined;
    error: import("./types").FieldError | undefined;
    isDirty: boolean | undefined;
    isTouched: boolean | undefined;
    invalid: boolean | undefined;
    setValue: (newValue: T, options?: SetValueOptions) => void;
};
/**
 * useFieldError - Hook to get only the error state of a field
 *
 * Use this for container widgets (GroupField, RepeaterField) that need to display
 * group-level errors but don't interact with the field value.
 *
 * More efficient than useField when you only need error state.
 *
 * @example
 * ```tsx
 * function GroupField({ path, backend, field, renderChild }: FormFieldProps) {
 *   const error = useFieldError(path, backend)
 *
 *   return (
 *     <FieldFrame error={error?.message}>
 *       {field.fields.map(child => renderChild(child, `${path}.${child.id}`))}
 *     </FieldFrame>
 *   )
 * }
 * ```
 */
export declare function useFieldError(path: string, backend: FormBackend): import("./types").FieldError | undefined;
