import { type ChangeEvent, type FocusEvent } from "react"; type Params = { value: Value; } & ({ onChange: (value: Value) => void; onChangesDone?: (value: Value) => void; } | { onChange?: (value: Value) => void; onChangesDone: (value: Value) => void; }) & ([Value] extends [string] ? { clean?: (value: string) => string; convert?: never; validate?: (value: string) => boolean; } & (Value | "" extends Value ? { validateEmptyField?: boolean; } : { validateEmptyField: true; }) : { clean?: never; convert: { fromString: (s: string) => { value: Value; } | "unparsable"; toString: (v: Value) => string; }; validate?: never; }); type El = HTMLInputElement | HTMLTextAreaElement; type Result = { inputProps: { onBlur: (e: FocusEvent) => void; onChange: (e: ChangeEvent) => void; onFocus: (e: FocusEvent) => void; value: string; }; isFocused: boolean; setInputValue: (text: string) => void; showInvalidDraftError: boolean; }; export declare function useInputWithDraftState(params: Params): Result; export {};