import { type ChangeEvent, type CSSProperties, type FormEvent, type FormHTMLAttributes, type HTMLInputTypeAttribute, type InputHTMLAttributes, type ReactNode, type TextareaHTMLAttributes } from 'react'; type ShiftedLabelFieldBase = { name: string; label: ReactNode; labelPrefix?: ReactNode; placeholder?: string; className?: string; controlClassName?: string; labelClassName?: string; style?: CSSProperties; onValueChange?: (value: string, event: ChangeEvent) => void; }; type ShiftedLabelInputField = ShiftedLabelFieldBase & Omit, 'children' | 'className' | 'name' | 'placeholder' | 'style' | 'type'> & { kind?: 'input'; type?: HTMLInputTypeAttribute; }; type ShiftedLabelTextareaField = ShiftedLabelFieldBase & Omit, 'children' | 'className' | 'name' | 'placeholder' | 'style'> & { kind: 'textarea'; }; type ShiftedLabelFieldConfig = ShiftedLabelInputField | ShiftedLabelTextareaField; type ShiftedLabelsFormValues = Record; type ShiftedLabelsFormProps = { fields?: ShiftedLabelFieldConfig[]; submitLabel?: ReactNode; preventDefault?: boolean; className?: string; onSubmit?: (values: ShiftedLabelsFormValues, event: FormEvent) => void; } & Omit, 'children' | 'className' | 'onSubmit'>; declare const ShiftedLabelField: (field: ShiftedLabelFieldConfig) => import("react/jsx-runtime").JSX.Element; declare const ShiftedLabelsForm: ({ fields, submitLabel, preventDefault, className, onSubmit, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, ...formProps }: ShiftedLabelsFormProps) => import("react/jsx-runtime").JSX.Element; export { ShiftedLabelField, ShiftedLabelsForm }; export type { ShiftedLabelFieldConfig, ShiftedLabelInputField, ShiftedLabelsFormProps, ShiftedLabelsFormValues, ShiftedLabelTextareaField, };