using System;
using Foundation;

namespace NfcLock.Ios.Binding
{
	// @interface NFCManager
	[DisableDefaultCtor]
	[BaseType (typeof (NSObject))]
	interface NFCManager
	{
		// +(void)startScan;
		[Static]
		[Export ("startScan")]
		void StartScan ();

		// +(void)endScan;
		[Static]
		[Export ("endScan")]
		void EndScan ();

		// +(void)endScanWithErrorMessage:(NSString * _Nonnull)errorMessage;
		[Static]
		[Export ("endScanWithErrorMessage:")]
		void EndScanWithErrorMessage (string errorMessage);

		// +(void)setLoopCbWithCb:(id)cb;
		[Static]
		[Export ("setLoopCbWithCb:")]
		void SetLoopCbWithCb (NSObject cb);

		// +(void)setFinishedCbWithCb:(void (^ _Nonnull)(void))cb;
		[Static]
		[Export ("setFinishedCbWithCb:")]
		void SetFinishedCbWithCb (Action cb);

		// +(void)setChargingCbWithCb:(void (^ _Nonnull)(NSString * _Nonnull, int))cb;
		[Static]
		[Export ("setChargingCbWithCb:")]
		void SetChargingCbWithCb (Action<NSString, int> cb);

		// +(void)setControllingCbWithCb:(void (^ _Nonnull)(NSString * _Nonnull, int))cb;
		[Static]
		[Export ("setControllingCbWithCb:")]
		void SetControllingCbWithCb (Action<NSString, int> cb);

		// +(void)lockWithPassword:(NSString * _Nonnull)password;
		[Static]
		[Export ("lockWithPassword:")]
		void LockWithPassword (string password);

		// +(void)unlockWithPassword:(NSString * _Nonnull)password;
		[Static]
		[Export ("unlockWithPassword:")]
		void UnlockWithPassword (string password);
	}
}
