//
//  IMPrivate.h
//  Buddy Status
//
//  Created by Seth Willits on 9/17/06.
//  Copyright 2006 Araelium Group. All rights reserved.
//

#import <Cocoa/Cocoa.h>


enum {
	FZPersonStatusOffline = 1,
	FZPersonStatusIdle = 2,
	FZPersonStatusAway = 3,
	FZPersonStatusAvailable = 4
};


#define FZPersonBuddyGroups			@"FZPersonBuddyGroups"
#define FZPersonCapabilities		@"FZPersonCapabilities"
#define FZPersonID					@"FZPersonID"
#define FZPersonIsBuddy				@"FZPersonIsBuddy"
#define FZPersonStatus				@"FZPersonStatus"
#define FZPersonMobileDevice		@"FZPersonMobileDevice"
#define FZPersonNickname			@"FZPersonNickname"
#define FZPersonStatusMessage		@"FZPersonStatusMessage"
#define FZPersonAwaySince			@"FZPersonAwaySince"
#define FZPersonCertificates		@"FZPersonCertificates"
#define FZPersonStatusURL			@"FZPersonStatusURL"



typedef struct {
    int _field1;
    unsigned short _field2;
} CDAnonymousStruct1;

@protocol FZDaemon <NSObject>
- (void)addListener:(id)fp8 capabilities:(int)fp12;
- (void)removeListener:(id)fp8;
- (id)allServices;
- (oneway void)terminate;
- (id)myStatus;
- (oneway void)changeMyStatus:(id)fp8;
- (id)nowPlayingFormatString;
- (void)addOpenNoteProperties:(id)fp8 fromListener:(id)fp12;
- (void)removeOpenNoteID:(id)fp8;
- (void)setValue:(id)fp8 ofPersistentProperty:(id)fp12;
- (id)valueOfPersistentProperty:(id)fp8;
- (oneway void)requestCurrentAVChatInfoForListener:(id)fp8 responseID:(id)fp12;
- (oneway void)requestAudioReflector:(BOOL)fp8 forListener:(id)fp12 responseID:(id)fp16;
- (oneway void)requestVideoStillForPerson:(id)fp8 forListener:(id)fp12 responseID:(id)fp16;
- (oneway void)provideCurrentAVChatInfo:(id)fp8 result:(int)fp12 transactionID:(unsigned int)fp16;
- (oneway void)provideVideoStill:(id)fp8 forPerson:(id)fp12 result:(int)fp16 transactionID:(unsigned int)fp20;
@end

@protocol FZDaemonListener <NSObject>
- (oneway void)myStatusChanged:(id)fp8;
- (oneway void)openNotesChanged:(id)fp8;
- (oneway void)daemonPersistentProperty:(id)fp8 changedTo:(id)fp12;
- (oneway void)currentAVChatInfoRequestedWithTransactionID:(unsigned int)fp8;
- (oneway void)audioReflectorRequested:(BOOL)fp8 transactionID:(unsigned int)fp12;
- (oneway void)videoStillForPersonRequested:(id)fp8 withTransactionID:(unsigned int)fp12;
- (oneway void)currentAVChatInfoProvided:(id)fp8 result:(int)fp12 responseID:(id)fp16;
- (oneway void)videoStill:(id)fp8 providedForPerson:(id)fp12 result:(int)fp16 responseID:(id)fp20;
@end

@protocol FZService <NSObject>
- (void)providePiggyback;
- (void)addListener:(id)fp8 signature:(id)fp12 capabilities:(int)fp16;
- (void)removeListener:(id)fp8;
- (id)serviceDefaults;
- (void)writeServiceDefaults:(id)fp8;
- (id)loginDefaults;
- (void)setActiveAccount:(id)fp8;
- (id)activeAccount;
- (id)accountsForLoginID:(id)fp8;
- (id)accountDefaults:(id)fp8;
- (void)writeAccount:(id)fp8 defaults:(id)fp12;
- (id)name;
- (id)shortName;
- (id)internalName;
- (id)serviceIconURL;
- (id)addressBookProperty;
- (id)defaultAddressBookLabel;
- (id)emoteString;
- (id)emailDomains;
- (int)IDSensitivity;
- (unsigned int)capabilities;
- (unsigned int)publicCapabilities;
- (BOOL)handlesChatInvites;
- (BOOL)hasCapability:(unsigned int)fp8;
- (void)holdBuddyUpdates;
- (void)resumeBuddyUpdates;
- (int)acceptableMessageFormats;
- (id)defaultBuddyIconURLs;
- (id)loginID;
- (oneway void)autoLogin;
- (oneway void)login;
- (oneway void)logout;
- (BOOL)loginIfAvailable;
- (int)serviceLoginStatus;
- (int)serviceDisconnectReason;
- (id)serviceLoginStatusMessage;
- (void)serviceCertificatesChanged;
- (void)enableSecureIM:(BOOL)fp8;
- (void)disableCertificatesForPerson:(id)fp8;

- (NSArray *)allBuddies; // Added by Seth
- (id)buddyProperties;

- (BOOL)requestProperty:(id)fp8 ofPerson:(id)fp12;
- (BOOL)setValue:(id)fp8 ofProperty:(id)fp12 ofPerson:(id)fp16;
- (id)buddyPictures;
- (id)pictureOfBuddy:(id)fp8;
- (id)groups;
- (BOOL)renameGroup:(id)fp8 to:(id)fp12;
- (BOOL)addBuddies:(id)fp8 toGroups:(id)fp12;
- (BOOL)removeBuddies:(id)fp8 fromGroups:(id)fp12;
- (id)createChatForIMsWith:(id)fp8 isDirect:(BOOL)fp12;
- (id)createChatWith:(id)fp8 invitation:(id)fp12 named:(id)fp16;
- (id)goToChatNamed:(id)fp8;
- (BOOL)invitePerson:(id)fp8 toChat:(id)fp12 withMessage:(id)fp16;
- (BOOL)respond:(BOOL)fp8 toInvitationToChat:(id)fp12;
- (BOOL)sendMessage:(id)fp8 toChat:(id)fp12;
- (BOOL)leaveChat:(id)fp8;
- (BOOL)setPerson:(id)fp8 isIgnored:(BOOL)fp12 inChat:(id)fp16;
- (CDAnonymousStruct1)validityOfChatRoomName:(id)fp8;
- (BOOL)infoForChat:(id)fp8 status:(out int *)fp12 isChatRoom:(out char *)fp16 members:(out id *)fp20;
- (BOOL)sendFile:(id)fp8 toPerson:(id)fp12;
- (id)currentShareUploads;
- (BOOL)requestShareDirectoryListing:(id)fp8 ofBuddy:(id)fp12;
- (id)getSharedFile:(id)fp8 ofBuddy:(id)fp12;
- (void)setVCCapabilities:(unsigned int)fp8 withMask:(unsigned int)fp12;
- (void)requestVCWithPerson:(id)fp8 properties:(id)fp12;
- (void)respondToVCInvitationWithPerson:(id)fp8 properties:(id)fp12;
- (void)cancelVCRequestWithPerson:(id)fp8;
- (void)sendCounterProposalToPerson:(id)fp8 properties:(id)fp12;
- (void)sendVCUpdate:(id)fp8 toPerson:(id)fp12;
- (void)sendVCOOBToPerson:(id)fp8 action:(unsigned long)fp12 param:(unsigned long)fp16;
- (void)blockMessages:(BOOL)fp8 fromID:(id)fp12;
- (void)setBlockList:(id)fp8;
- (id)blockList;
- (void)setAllowList:(id)fp8;
- (id)allowList;
- (void)setBlockingMode:(int)fp8;
- (int)blockingMode;
- (BOOL)blockIdleStatus;
- (void)setBlockIdleStatus:(BOOL)fp8;
- (BOOL)setPresenceStatus:(BOOL)fp8 forPerson:(id)fp12 requestID:(id)fp16;
- (BOOL)requestPresenceStatusFromPerson:(id)fp8;
@end

@protocol FZServiceListener <NSObject>
- (oneway void)service:(id)fp8 defaultsChanged:(id)fp12;
- (oneway void)service:(id)fp8 activeAccountChanged:(id)fp12;
- (oneway void)service:(id)fp8 accountDefaultsChanged:(id)fp12;
- (oneway void)service:(id)fp8 loginStatusChanged:(int)fp12 message:(id)fp16 reason:(int)fp20;
- (oneway void)service:(id)fp8 capabilitiesChanged:(unsigned int)fp12;
- (oneway void)service:(id)fp8 buddyPropertiesChanged:(id)fp12;
- (oneway void)service:(id)fp8 providePiggyback:(BOOL)fp12;
- (oneway void)shutdownAV;
- (oneway void)service:(id)fp8 buddyPictureChanged:(id)fp12 imageData:(id)fp16;
- (oneway void)service:(id)fp8 youAreDesignatedNotifier:(BOOL)fp12;
- (oneway void)service:(id)fp8 buddyGroupsChanged:(id)fp12;
- (oneway void)service:(id)fp8 invitedToChat:(id)fp12 isChatRoom:(BOOL)fp16 invitation:(id)fp20;
- (oneway void)service:(id)fp8 directIMRequestFrom:(id)fp12 invitation:(id)fp16;
- (oneway void)service:(id)fp8 chat:(id)fp12 statusChanged:(int)fp16;
- (oneway void)service:(id)fp8 chat:(id)fp12 messageReceived:(id)fp16;
- (oneway void)service:(id)fp8 chat:(id)fp12 showError:(id)fp16;
- (oneway void)service:(id)fp8 chat:(id)fp12 member:(id)fp16 statusChanged:(int)fp20;
- (oneway void)service:(id)fp8 requestIncomingFileXfer:(id)fp12;
- (oneway void)service:(id)fp8 requestOutgoingFileXfer:(id)fp12;
- (oneway void)service:(id)fp8 shareUploadStarted:(id)fp12;
- (oneway void)service:(id)fp8 buddy:(id)fp12 shareDirectory:(id)fp16 listing:(id)fp20;
- (oneway void)service:(id)fp8 invitedToVC:(id)fp12 properties:(id)fp16;
- (oneway void)service:(id)fp8 responseToVCRequest:(id)fp12 properties:(id)fp16;
- (oneway void)service:(id)fp8 cancelVCInviteFrom:(id)fp12;
- (oneway void)service:(id)fp8 counterProposalFrom:(id)fp12 properties:(id)fp16;
- (oneway void)service:(id)fp8 updateVCFrom:(id)fp12 data:(id)fp16;
- (oneway void)service:(id)fp8 handleVCOOB:(id)fp12 action:(unsigned long)fp16 param:(unsigned long)fp20;
- (oneway void)showInvalidCertNotificationForService:(id)fp8;
@end

