+ * @method remoteTitle
+ * @abstract Returns the remote's title/name.
+ * @discussion This title is shown while the user is selecting which remote to use. This is for informational purposes only.
+ * @result An NSString containing the title/name of the remote.
+ */
+- (NSString *)remoteTitle;
+
+/*!
+ * @method remoteInformation
+ * @abstract Returns the remote's information.
+ * @discussion Information on the remote that the user will see when selecting which remote to use. The information returned here has no bearing on how the remote works, it's simply here for informing the user.
+ * @result An NSString containing the information for the remote.
+ */
+- (NSString *)remoteInformation;
+
+/*!
+ * @method remoteIcon
+ * @abstract Returns the remote's icon.
+ * @discussion This icon is shown while the user is selecting which remote to use. Typically, this is the remote's player's application icon, however it can be anything you like.
+ * @result An NSImage containing the icon of the remote.
+ */
+- (NSImage *)remoteIcon;
+
+/*!
+ * @method begin
+ * @abstract Sent when the remote should begin operation.
+ * @result A result code signifying success.
+ */
+- (BOOL)begin;
+
+/*!
+ * @method halt
+ * @abstract Sent when the remote should cease operation.
+ * @result A result code signifying success.
+ */
+- (BOOL)halt;
+
+/*!
+ * @method playerFullName
+ * @abstract Returns the remote's player's application filename.
+ * @discussion This string should be the name typically used by the remote's player's application bundle/file. For example, Panic's Audion audio player is known simply as "Audion", however, the application bundle is called "Audion 3" for version 3 of thei
+
+r application. This should return "Audion 3", not simply "Audion". See playerSimpleName.
+ * @result An NSString containing the remote's player's application filename
+ */
+- (NSString *)playerFullName;
+
+/*!
+ * @method playerSimpleName
+ * @abstract Returns the simplified name of the remote's player.
+ * @discussion This is the name used in the User Interface for when referring to the remote's player. Continuing the example from the playerFullName method, this method would return simply "Audion", as that is how the player is known.
+ * @result An NSString containing the simplified name of the remote's player.
+ */
+- (NSString *)playerSimpleName;
+
+/*!
+ * @method capabilities
+ * @abstract Returns a dictionary defining the capabilities of the remote and it's player.
+ * @discussion Discussion Forthcoming.
+ * @result An NSDictionary defining the capabilities of the remote and it's player.
+ */
+- (NSDictionary *)capabilities;
+
+/*!
+ * @method showPrimaryInterface
+ */
+- (BOOL)showPrimaryInterface;
+
+/*!
+ * @method playerRunningState
+ * @abstract Returns the running state of the remote's player.
+ * @discussion While most remotes will use only ITMTRemotePlayerNotRunning or ITMTRemotePlayerRunning, we have included support for ITMTRemotePlayerLaunching (see ITMTRemotePlayerRunningState) for remotes that want the most precise control over their play
+
+er's process managment.
+ * @result An ITMTRemotePlayerRunningState defining the running state of the remote's player.
+ */
+- (ITMTRemotePlayerRunningState)playerRunningState;
+
+/*!
+ * @method playerPlayingState
+ */
+- (ITMTRemotePlayerPlayingState)playerPlayingState;
+
+/*!
+ * @method playlists
+ */
+- (NSArray *)playlists;
+
+/*!
+ * @method artists
+ */
+- (NSArray *)artists;
+
+/*!
+ * @method albums
+ */
+- (NSArray *)albums;
+
+/*!
+ * @method numberOfSongsInPlaylistAtIndex:
+ */
+- (int)numberOfSongsInPlaylistAtIndex:(int)index;
+
+/*!
+ * @method currentSource
+ */
+- (ITMTRemotePlayerSource)currentSource;
+
+/*!
+ * @method currentSourceIndex
+ */
+- (int)currentSourceIndex;
+
+/*!
+ * @method currentPlaylistClass
+ */
+- (ITMTRemotePlayerPlaylistClass)currentPlaylistClass;
+
+/*!
+ * @method currentPlaylistIndex
+ */
+- (int)currentPlaylistIndex;
+
+/*!
+ * @method songTitleAtIndex:
+ */
+- (NSString *)songTitleAtIndex:(int)index;
+
+/*!
+ * @method songEnabledAtIndex:
+ */
+- (BOOL)songEnabledAtIndex:(int)index;
+
+/*!
+ * @method currentAlbumTrackCount:
+ */
+- (int)currentAlbumTrackCount;
+
+/*!
+ * @method currentSongTrack:
+ */
+- (int)currentSongTrack;
+
+/*!
+ * @method playerStateUniqueIdentifier:
+ */
+- (NSString *)playerStateUniqueIdentifier;
+
+/*!
+ * @method currentSongIndex
+ */
+- (int)currentSongIndex;