use std::os::raw::c_void;
use base::{CFTypeID, CFIndex, CFAllocatorRef};
use string::CFStringRef;
use dictionary::CFDictionaryRef;
#[repr(C)]
pub struct __CFError(c_void);
pub type CFErrorRef = *mut __CFError;
pub type CFErrorDomain = CFStringRef;
extern "C" {
pub static kCFErrorDomainPOSIX: CFStringRef;
pub static kCFErrorDomainOSStatus: CFStringRef;
pub static kCFErrorDomainMach: CFStringRef;
pub static kCFErrorDomainCocoa: CFStringRef;
pub static kCFErrorLocalizedDescriptionKey: CFStringRef;
pub static kCFErrorLocalizedFailureReasonKey: CFStringRef;
pub static kCFErrorLocalizedRecoverySuggestionKey: CFStringRef;
pub static kCFErrorDescriptionKey: CFStringRef;
pub static kCFErrorUnderlyingErrorKey: CFStringRef;
pub static kCFErrorURLKey: CFStringRef;
pub static kCFErrorFilePathKey: CFStringRef;
pub fn CFErrorCreate(allocator: CFAllocatorRef, domain: CFErrorDomain, code: CFIndex, userInfo: CFDictionaryRef) -> CFErrorRef;
pub fn CFErrorGetDomain(err: CFErrorRef) -> CFStringRef;
pub fn CFErrorGetCode(err: CFErrorRef) -> CFIndex;
pub fn CFErrorCopyUserInfo(err: CFErrorRef) -> CFDictionaryRef;
pub fn CFErrorCopyDescription(err: CFErrorRef) -> CFStringRef;
pub fn CFErrorCopyFailureReason(err: CFErrorRef) -> CFStringRef;
pub fn CFErrorCopyRecoverySuggestion(err: CFErrorRef) -> CFStringRef;
pub fn CFErrorGetTypeID() -> CFTypeID;
}