#ifndef _IOKIT_HID_IOHIDLIBPRIVATE_H
#define _IOKIT_HID_IOHIDLIBPRIVATE_H
#include <IOKit/hid/IOHIDLib.h>
#include <IOKit/hid/IOHIDDevicePlugIn.h>
#include <IOKit/hid/IOHIDLibUserClient.h>
__BEGIN_DECLS
typedef struct _IOHIDCalibrationStruct {
CFIndex satMin;
CFIndex satMax;
CFIndex dzMin;
CFIndex dzMax;
CFIndex min;
CFIndex max;
double_t gran;
} IOHIDCalibrationInfo;
extern void _IOObjectCFRelease(CFAllocatorRef allocator, const void * value);
extern const void * _IOObjectCFRetain(CFAllocatorRef allocator, const void *value);
CF_EXPORT
IOHIDElementRef _IOHIDElementCreateWithParentAndData(CFAllocatorRef allocator, IOHIDElementRef parent, CFDataRef dataStore, IOHIDElementStruct * elementStruct, uint32_t index);
CF_EXPORT
void _IOHIDElementSetDevice(IOHIDElementRef element, IOHIDDeviceRef device);
CF_EXPORT
void _IOHIDElementSetDeviceInterface(IOHIDElementRef element, IOHIDDeviceDeviceInterface ** interface);
CF_EXPORT
uint32_t _IOHIDElementGetFlags(IOHIDElementRef element);
CF_EXPORT
CFIndex _IOHIDElementGetLength(IOHIDElementRef element);
CF_EXPORT
IOHIDValueRef _IOHIDElementGetValue(IOHIDElementRef element);
CF_EXPORT
IOHIDCalibrationInfo * _IOHIDElementGetCalibrationInfo(IOHIDElementRef element);
CF_EXPORT
void _IOHIDElementSetValue(IOHIDElementRef element, IOHIDValueRef value);
CF_EXPORT
IOHIDValueRef _IOHIDValueCreateWithStruct(CFAllocatorRef allocator, IOHIDElementRef element, IOHIDEventStruct * pEventStruct);
CF_EXPORT
IOHIDValueRef _IOHIDValueCreateWithElementValuePtr(CFAllocatorRef allocator, IOHIDElementRef element, IOHIDElementValue * pEventValue);
CF_EXPORT
void _IOHIDValueCopyToElementValuePtr(IOHIDValueRef value, IOHIDElementValue * pElementValue);
CF_EXPORT
IOCFPlugInInterface ** _IOHIDDeviceGetIOCFPlugInInterface(
IOHIDDeviceRef device);
CF_EXPORT
CFArrayRef _IOHIDQueueCopyElements(IOHIDQueueRef queue);
__END_DECLS
#endif