import type { ChangeEvent, FocusEvent } from "react"; declare type Params = { onChange: (value: Value) => void; value: Value; } & (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; }); declare type El = HTMLInputElement | HTMLTextAreaElement; declare type Result = { inputProps: { onBlur: (e: FocusEvent) => void; onFocus: (e: FocusEvent) => void; onChange: (e: ChangeEvent) => void; value: string; }; isFocused: boolean; showInvalidDraftError: boolean; }; export declare function useInputWithDraftState(params: Params): Result; export {};