#ifndef _SECURITYD_SECITEMSERVER_H_
#define _SECURITYD_SECITEMSERVER_H_
#include <CoreFoundation/CoreFoundation.h>
#include <SecureObjectSync/SOSEngine.h>
#include <SecureObjectSync/SOSCircle.h>
#include <utilities/SecDb.h>
__BEGIN_DECLS
bool _SecItemAdd(CFDictionaryRef attributes, CFArrayRef accessGroups, CFTypeRef *result, CFErrorRef *error);
bool _SecItemCopyMatching(CFDictionaryRef query, CFArrayRef accessGroups, CFTypeRef *result, CFErrorRef *error);
bool _SecItemUpdate(CFDictionaryRef query, CFDictionaryRef attributesToUpdate, CFArrayRef accessGroups, CFErrorRef *error);
bool _SecItemDelete(CFDictionaryRef query, CFArrayRef accessGroups, CFErrorRef *error);
bool _SecItemDeleteAll(CFErrorRef *error);
bool _SecServerRestoreKeychain(CFErrorRef *error);
bool _SecServerMigrateKeychain(int32_t handle_in, CFDataRef data_in, int32_t *handle_out, CFDataRef *data_out, CFErrorRef *error);
CFDataRef _SecServerKeychainBackup(CFDataRef keybag, CFDataRef passcode, CFErrorRef *error);
bool _SecServerKeychainRestore(CFDataRef backup, CFDataRef keybag, CFDataRef passcode, CFErrorRef *error);
bool _SecServerKeychainSyncUpdate(CFDictionaryRef updates, CFErrorRef *error);
CFDictionaryRef _SecServerBackupSyncable(CFDictionaryRef backup, CFDataRef keybag, CFDataRef password, CFErrorRef *error);
bool _SecServerRestoreSyncable(CFDictionaryRef backup, CFDataRef keybag, CFDataRef password, CFErrorRef *error);
void SecItemServerAppendItemDescription(CFMutableStringRef desc, CFDictionaryRef object);
SOSDataSourceFactoryRef SecItemDataSourceFactoryCreate(SecDbRef db);
SOSDataSourceFactoryRef SecItemDataSourceFactoryCreateDefault(void);
void SecItemServerSetKeychainKeybag(int32_t keybag);
void SecItemServerResetKeychainKeybag(void);
void SecItemServerSetKeychainChangedNotification(const char *notification_name);
CFStringRef __SecKeychainCopyPath(void);
__END_DECLS
#endif