import React from "react";
declare type ManagedFormElement<T = string> = {
    onChange: (v: T) => void;
    value: T;
};
declare type UnmanagedFormElement = {
    onChange?: never;
    value?: never;
};
declare type ValidatedFormElement<T = string> = {
    validation: ((value: T) => boolean | string) | RegExp;
    validationMessage: string;
};
declare type NonValidatedFormElement = {
    validation?: never;
    validationMessage?: never;
};
declare type BaseFormElement = {
    className?: string;
    disabled?: boolean;
    label?: React.ReactNode;
    nullable?: boolean;
    placeholder?: string;
};
export declare type FormElement<T = string> = BaseFormElement & (ManagedFormElement<T> | UnmanagedFormElement) & (ValidatedFormElement<T> | NonValidatedFormElement);
export {};
