export interface ChangeHandler { (value: T, ...args: P): any; } type DefaultOptions = `default${Capitalize}`; type ToString = T extends string ? T : `${Extract}`; declare const useControlled:

(props: R, valueKey: K, onChange: ChangeHandler, defaultOptions?: { [key in DefaultOptions>]: R[K]; } | object) => [R[K], ChangeHandler]; export default useControlled;