declare function useControlledState<T>(value: T | undefined, defaultValue: T | undefined, onChange?: (v: T) => void): [T, (v: T) => void];
declare function useControlledState<T>(value: T, defaultValue: T | undefined, onChange?: (v: T) => void): [T, (v: T) => void];
declare function useControlledState<T>(value: T | undefined, defaultValue: T, onChange?: (v: T) => void): [T, (v: T) => void];

export { useControlledState };
